5

HTMLフォーム/ JavaScriptおよびAPIゲートウェイ統合を介して、すべてSAMテンプレートで定義されたS3バケットへの画像ファイルのアップロードを許可するはずのGoで書かれたLambda関数があります。

Lambda 関数の実行ログの例を次に示します。

ここに画像の説明を入力

ここでの問題は、JPEG または PNG ファイルの場合、破損した結果が得られることです。

  • 結果の画像のファイル サイズ (メディア メッセージを解析すると得られるものmultipart) は、元のファイル サイズよりも大きくなります (例: 8kB (元の) から 12kB (S3 バケット))。
  • 元の PNG または JPEG ファイルを S3 バケット内の結果のファイルと比較するとhexdump、ほとんど同じように見えます (つまり、base64 エンコーディングの問題が関係しているとは思えません)。
  • 興味深いことに、text/plainこのメディア タイプでは、この設定が機能します。

どこが壊れているのかを突き止めようとしましたが、現時点では、API Gateway の構成に欠けているものがあると思います。FWIW、私はこれを試しましたが、動作に目に見える変化はありません:

$ aws apigateway update-integration-response \
                 --rest-api-id XXX --resource-id XXX \
                 --http-method POST --status-code 200 \
                 --patch-operations op='replace',path='/contentHandling',value='CONVERT_TO_BINARY'`
4

0 に答える 0