我正在尝试使用 IBM Bluemix Cloud 中的Object Storage Service,但我无法从nodejs服务器发送图像。我怎样才能做到这一点?关注我的服务器代码:
unirest
.post(MY_CONTAINER + new_fname)
.headers({'Content-Type': 'multipart/form-data', 'X-Auth-Token': token})
.field({ 'max_file_count': 1 })
.field({ 'max_file_size': 1 })
.attach({ 'file': file.originalname, 'relative file': streamFile })
.end(function (resp) {
//response
console.log(resp.status);
console.log(resp.body);
});
主要问题是找到使用API将图像(png或jpg)发送到bluemix存储的正确方法(我已将其上传到我们的服务器)。
答案 0 :(得分:5)
我使用pkgcloud-bluemix-objectstorage来修复之前使用过v2的OpenStack身份验证错误,并且已经更改为使用v3。
这是链接 Bluemix - object storage - node.js - pkgcloud - openstack returns 401
@libik写了一个例子。
<?php echo site_url('student/update/'.$r->Id) ?>
答案 1 :(得分:3)
@JeffSloyer编写了一个Node.js示例应用程序,用于将文件上传到Bluemix中的Object Storage实例。
您可以在此处找到代码:
https://github.com/IBM-Bluemix/node-file-upload-swift
上面的代码无法使用Open Stack Swift v3进行身份验证,因此我对skipper-openstack模块进行了修改以使用pkgcloud-bluemix-objectstorage:
https://github.com/adasilva70/skipper-openstack.git#adasilva70-patch-1
克隆Jeff的存储库并按照README.md文件中的说明运行代码。确保使用下面的文件修改package.json文件以获取我的更改:
{
"name": "node-file-upload-swift",
"version": "0.0.0",
"dependencies": {
"bower": "^1.7.1",
"cf-deployment-tracker-client": "*",
"cfenv": "^1.0.3",
"dotenv": "^1.2.0",
"express": "~4.x",
"skipper": "^0.5.8",
"skipper-openstack": "git+https://github.com/adasilva70/skipper-openstack.git#adasilva70-patch-1",
"stream": "0.0.2",
"underscore": "^1.8.3"
},
"main": "server.js",
"scripts": {
"start": "node server.js",
"postinstall": "bower install --allow-root --config.interactive=false"
}
}