特定のAzure関数のエンドポイントにヒットしたときにBlobストレージからファイルを返したいと思います。このファイルはバイナリデータです。 Azureストレージブロブのドキュメント毎Azure関数 - NodeJS - ストリームとしての応答本体
中間ファイルへのファイルの書き込みを必要としないその一つだけ以来、最も関連性の高いコールは、次のように表示されます。 getBlobToStream
しかし、この呼び出しはブロブを取得それをストリームに書き込みます。
Azureがストリームをres.bodyの値として使用する方法はありますか。ストレージからBlobコンテンツを取得してすぐにレスポンスに書き込むことができますか?
作業にこのような何かを取得しようと、いくつかのコードを追加するには:
'use strict';
const azure = require('azure-storage'),
stream = require('stream');
const BLOB_CONTAINER = 'DeContainer';
module.exports = function(context){
var file = context.bindingData.file;
var blobService = azure.createBlobService();
var outputStream = new stream.Writable();
blobService.getBlobToStream(BLOB_CONTAINER, file, outputStream, function(error, serverBlob) {
if(error) {
FileNotFound(context);
} else {
context.res = {
status: 200,
headers: {
},
isRaw: true,
body : outputStream
};
context.done();
}
});
}
function FileNotFound(context){
context.res = {
status: 404,
headers: {
"Content-Type" : "application/json"
},
body : { "Message" : "No esta aqui!."}
};
context.done();
}
私はそれが答えではないことを期待していましたが、それにも感謝しています。私はこれを回避する方法を見ていきます。 – Doug