gpt4 book ai didi

node.js - Node - Bluemix 对象存储

转载 作者:太空宇宙 更新时间:2023-11-04 00:33:24 27 4
gpt4 key购买 nike

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

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

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

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

有人有一个起点吗?

谢谢

最佳答案

使用对象存储 Node 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);

关于node.js - Node - Bluemix 对象存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40082116/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com