节点 – Bluemix对​​象存储

我想用我的Bluemix帐户尝试Object Storage。

前端发送给我的是base64编码的图像。

我想知道如何存储一个文件(通过编写一个新的临时文件),并将其上传到Object Storage?

我通过给参数中的path成功上传了一个文件,但是在这里我只有base64数据。

有人有一个点开始?

谢谢

使用对象存储节点SDK:

https://github.com/ibm-bluemix-mobile-services/bluemix-objectstorage-serversdk-nodejs

或者你也可以使用pkgcloud :

/* * Copyright 2016 IBM Corp. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * http://www.apache.org/licenses/LICENSE-2.0 * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ (function (module) { var pkgcloud = require('pkgcloud'), fs = require('fs'); function ObjectStorage(container, credentials) { this.container = container; this.config = { provider: 'openstack', useServiceCatalog: true, useInternal: false, keystoneAuthVersion: 'v3', authUrl: credentials.auth_url, tenantId: credentials.projectId, domainId: credentials.domainId, username: credentials.username, password: credentials.password, region: credentials.region }; this.client = pkgcloud.storage.createClient(this.config); } ObjectStorage.prototype.validate = function () { return new Promise(function (resolve, reject) { this.client.auth(function (error) { if (error) { return reject(error); } resolve(); }); }.bind(this)); }; ObjectStorage.prototype.makeContainer = function () { return new Promise(function (resolve, reject) { this.client.createContainer({name: this.container}, function (error) { if (error) { return reject(error); } return resolve(); }); }.bind(this)); }; ObjectStorage.prototype.uploadFile = function (path, name) { return new Promise(function (resolve, reject) { var myPicture = fs.createReadStream(path); var upload = this.client.upload({ container: this.container, remote: name }); upload.on('error', function (error) { reject(error); }); upload.on('success', function (file) { resolve(file); }); myPicture.pipe(upload); }.bind(this)); }; module.exports = ObjectStorage; })(module);