Azure関数HTTPバインディングは、Azure BlobストレージからイメージをBase64文字列として読み込みます。Azure関数からbase64イメージをバイナリデータとして返す方法
data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBxQTEhIUEhIUFBUV…K9rk8hCAEkjFMUYiEAI+nHIpsQh0AkisDYRTOiCAbWVtgCtI6IlkHh7LDTQXLH0EIQBj//2Q==
これは、新しいバッファを使用して、それを変換します
const buf = new Buffer(pictureObj.data.split(",")[1], "base64");
そして、それは、これがこの方法をバッファ返します
context.bindings.res = {
"status": 200,
"headers": {
"Content-Type": type || "image/jpeg"
},
"body": new Uint8Array(buf)
};
残念ながら、これは動作しません。 "isRaw"を設定しても、バッファ(buf)自体を返すだけでなく動作しませんでした。エラーは406(Unacceptable)で、本文は空です。
質問は次のとおりです。HTTPアウトバインディングを通じて、どのようにしてbase64をバイナリイメージとして返すのでしょうか?また
、(そのようなContent-Lengthなど)より多くのヘッダがこのエラーで失敗したものを追加:
info: Worker.Node.2a68d094-3858-406b-a0c5-a81497b3436b[0]
Worker 2a68d094-3858-406b-a0c5-a81497b3436b malformed message invocationResponse.outputData.data.http.headers: string{k:string} expected
[03/12/2017 02:44:32] A ScriptHost error has occurred
[03/12/2017 02:44:32] Error: Choose either to return a promise or call 'done'. Do not use both in your script.
[03/12/2017 02:44:32] Error: Choose either to return a promise or call 'done'. Do not use both in your script.
アプリケーション/オクテットストリームのコンテンツタイプで試され、結果は同じです。 content-typeを設定しないと、バッファがbase64文字列として返されます。 –