0

最近、azure関数を使用してbase64文字列を画像に変換し、この画像をブロブに保存し始めました。 しかし、私はblobに特定のファイルタイプを書く方法については何も見当たりませんでした.fs.writeFile()でNodeで普通にやることができます。Azure関数Node.js:ブロブに画像を書き込む

Azure関数の通常の「出力」でこれを行うことさえ可能かどうか誰かに教えてください。 目的は、base64文字列をイメージに変換してblobに保存できることです。

module.exports = function (context, input) { 

    var image = input; 
    var bitmap = new Buffer(image, 'base64'); 

    //base64 string to test: "data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==" 

    function decodeBase64Image(dataString) { 
     var matches = dataString.match(/^data:([A-Za-z-+\/]+);base64,(.+)$/), 
     response = {}; 

     if (matches.length !== 3) { 
      return new Error('Invalid input string'); 
     } 

     response.type = matches[1]; 
     response.data = new Buffer(matches[2], 'base64'); 

     return response; 
    } 

    var imageBuffer = decodeBase64Image(input); 

    //context.bindings.outputBlob = {'test2.jpg', imageBuffer.data}; 

    context.done(null, imageBuffer); 
}; 

私functions.jsonは、次のようになります。

{ 
    "bindings": [ 
    { 
     "type": "manualTrigger", 
     "direction": "in", 
     "name": "input" 
    }, 
    { 
     "type": "blob", 
     "name": "outputBlob", 
     "path": "logo/{rand-guid}", 
     "connection": "npsmonitordev_STORAGE", 
     "direction": "out" 
    } 
    ], 
    "disabled": false 
} 

答えて

0

はい、それは可能です。

context.bindings.outputBlob = imageBuffer.data; 
context.done(); 

を、私のfunction.jsonに、私はこの持っている:私のテストで

、私は以下のようにimageBuffer.dataに等しいoutputBlobを設定

{ 
    "bindings": [ 
    //... 
    { 
     "type": "blob", 
     "name": "outputBlob", 
     "path": "outcontainer/{rand-guid}.png", 
     "connection": "aaronchstorage_STORAGE", 
     "direction": "out" 
    } 
    ], 
    "disabled": false 
} 

をこれはにbolbファイルとしてバッファのデータが保存されますAzureストレージ。

enter image description here

関連する問題