使用NodeJS腳本從IBM Bluemix Object Storage下載文件時出現問題,問題是需要很長時間才能從存儲中下載文件,100K文件需要大約21秒,大約8秒鐘等待第一個塊並休息讀取所有塊使用NodeJS從IBM Bluemix Object Storage下載文件
我正在使用該服務來存儲圖像並使用NodeJS腳本從存儲中讀取這些圖像,並通過HTML下載圖像img標籤,所以我在這裏做錯了什麼?
的代碼的NodeJS:
app.get("/ostore/image/:filename", function(request, response) {
response.set('Content-Type', 'image/jpg');
response.set('cache-control', 'max-age=604800');
response.set('Last-Modified', 'Sat, 05 Dec 2015 03:17:48 GMT');
var credentials = app.appEnv.services['Object-Storage'][0].credentials
var pkgcloud = require("pkgcloud");
var client = pkgcloud.storage.createClient({
provider: 'openstack',
username: credentials.userId,
password: credentials.password,
authUrl: credentials.auth_url,
tenantId: credentials.projectId,
region: credentials.region,
version: "2"
});
client.download({
container: app.storageContainer,
remote: request.params.filename,
stream: response
}, function() {
response.end('done');
});
});
嗨@adevedo,這是否解決了您的問題? – joe
我無法按原樣使用您的代碼,pkgcloud庫現在導致bluemix存儲服務發生身份驗證錯誤,我必須將其更改爲pkgcloud-bluemix-objectstorage,但我從您的代碼中瞭解如何在響應中調用管道而不是直接將響應流傳遞給下載對象,以及如何在調用下載之前調用身份驗證,我不知道這是問題還是問題出在pkgcloud本身上,而是隨着調用管道的更改以及更改pkgcloud ,下載api工作正常,謝謝 – adevedo