2017-04-10 1 views
1

Ich versuche, eine knotenbasierte Lambda-Funktion zu verwenden, um JPEG-Bilder von S3 mithilfe von API Gateway zurückzugeben.API-Gateway kann Base64 nicht decodieren

Meine Lambda-Funktion lautet wie:

s3.getObject(params).promise().then((result) => { 
    let resp = { 
       statusCode: 200, 
       headers: { 
        'Content-Type': 'image/jpeg' 
       }, 
       body: result.Body.toString('base64'), 
       isBase64Encoded: true 
    };   
    callback(null, resp); 
}); 

Ich habe auch die Integration Antwort in API-Gateway geändert "um binäre zu Rechnen (falls erforderlich)". Wenn ich versuche, diese Funktion zu testen, erhalte ich den Fehler "Ausführung wegen Konfigurationsfehler fehlgeschlagen: Base64 kann den Körper nicht decodieren.".

Gibt es einen Schritt fehlt mir, um base64-codierte Dateien abrufen zu können?

Antwort

-1

Klingt, als ob Sie den AWS-Integrationstyp des API-Gateways anstelle der LAMBDA-Integration verwenden. In diesem Fall würde das API-Gateway erwarten, dass die gesamte Nachricht base64-codiert ist und nicht nur der Text. Für Ihren Anwendungsfall sollten Sie wahrscheinlich die LAMBDA-Integration verwenden und json mit statusCode, body, headers und Content-Type wie bisher zurückgeben.

+0

Der Integrationstyp ist bereits als LAMBDA eingestellt, wenn Sie sich darauf beziehen? – Rabona

Verwandte Themen