2017-04-10 28 views
1

APIゲートウェイを使用して、ノードベースのラムダ関数を使用してs3からjpegイメージを返そうとしています。API Gatewayはbase64をデコードできません

私のラムダ関数は読み込み:私もするAPIゲートウェイでの統合の応答を変更した

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); 
}); 

「バイナリに変換します(必要な場合)」。私はこの機能をテストしようとすると、 "設定エラーのため実行が失敗しました:Base64をデコードできませんでした"というエラーが表示されます。

base64でエンコードされたファイルを取得するための手順がありますか?

答えて

-1

LAMBDA統合の代わりにAWSインテグレーションタイプのAPIゲートウェイを使用しているようで、その場合、APIゲートウェイは本文全体だけでなく、メッセージ全体がbase64でエンコードされると考えています。あなたのユースケースでは、おそらくLAMBDA統合を使用し、statusCode、body、headers、およびContent-Typeを使用してjsonを現在のように返すべきです。

+0

これはあなたが参照している場合、統合タイプはすでにLAMBDAとして設定されていますか? – Rabona

関連する問題