私はイベントで入力キーを使ってs3からファイルを取り出し、それをクライアントに送る必要があるラムダ関数を持っています。私はcontext.succeed
にこの約束(バッファ)の応答を送信する場合、それはフロントエンドにJSON配列として表示され AWS LambdaとAWS API Gateway:バイナリファイルの送信方法
function getObject(key){
var params = {
Bucket: "my_bucket",
Key: key
}
return new Promise(function (resolve, reject){
s3.getObject(params, function (err, data){
if(err){
reject(err);
}
resolve(data.Body)
})
})
}
からファイルを取得するには、以下の機能を使用しています。どうすればファイルとして送信できますか?ファイルは、ZIPまたはHTTPアーカイブ(HAR)ファイルのいずれかです。 s3キーには適切な拡張子が含まれています。私はそれがAPI Gatewayの "Integration Response"と何か関係があると推測しています。しかし、変更する場所を特定できない
このスレッドの公式のAWS回答を読む:https://forums.aws.amazon.com/thread.jspa?thread.jspa?threadID=195218 –
API Gatewayチーム - Mark Bが正式なステータスです。今後バイナリパススルーをサポートするよう努めていますが、ETAはありません。 –
には、このための回避策があります。我々の完全なアプリケーションはサーバレスです。ダウンロード目的のために個別のEC2インスタンスを作成しないようにしたいと考えています –