Ich habe eine Lambda-Funktion, die eine Datei von s3 mit dem Eingabeschlüssel im Ereignis abruft und diese an den Client senden muss. Ich verwende die folgende Funktion die Datei von s3AWS Lambda und AWS API Gateway: Wie wird eine Binärdatei gesendet?
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)
})
})
}
zu bekommen Wenn ich die Antwort dieses Versprechen (Puffer) zu context.succeed
senden, es als JSON-Array auf Frontend angezeigt wird. Wie kann ich es als Datei senden? Die Dateien können entweder ZIP- oder HTTP-Archivdateien (HAR-Dateien) sein. Die s3-Schlüssel enthalten die entsprechende Erweiterung. Ich vermute, dass es etwas mit der "Integration Response" in API Gateway zu tun hat. Aber nicht in der Lage herauszufinden, wo zu ändern
Lesen Sie die offizielle AWS-Antwort in diesem Thema: https://forums.aws.amazon.com/thread.jspa?threadID=195218 –
API-Gateway-Team - Mark B hat Recht, das ist der offizielle Status. Wir arbeiten daran, in Zukunft Binär Passthrough zu unterstützen, aber keine ETA. –
gibt es eine Problemumgehung dafür. Unsere komplette Anwendung ist Serverless. Wir möchten vermeiden, eine separate EC2-Instanz für den Download-Zweck –