如何将文件上传到Bluemix中的对象存储(由nodejs)

时间:2016-01-26 03:11:52

标签: node.js ibm-cloud object-storage

我正在尝试使用 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存储的正确方法(我已将其上传到我们的服务器)。

2 个答案:

答案 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"
  }
}