Node.js 节点-Bluemix对象存储

Node.js 节点-Bluemix对象存储,node.js,ibm-cloud,object-storage,Node.js,Ibm Cloud,Object Storage,我想用我的Bluemix帐户尝试对象存储 前端正在以base64编码向我发送图像 我想知道如何存储一个文件(通过编写一个新的临时文件),并将其上传到对象存储 通过在参数中提供路径,我成功上传了一个文件,但这里我只有base64数据 有人有话要说吗 感谢您使用对象存储节点SDK: 或者你也可以使用: 谢谢你,伙计,我将尝试一下这个软件包“对象存储节点SDK”软件包非常好用。谢谢。 /* * Copyright 2016 IBM Corp. * Licensed under the Apac

我想用我的Bluemix帐户尝试对象存储

前端正在以base64编码向我发送图像

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

通过在参数中提供路径,我成功上传了一个文件,但这里我只有base64数据

有人有话要说吗


感谢您使用对象存储节点SDK:

或者你也可以使用:


谢谢你,伙计,我将尝试一下这个软件包“对象存储节点SDK”软件包非常好用。谢谢。
/*
 * 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);