APIGateway経由でS3にuploadした画像が表示できない。


isuue

前提
・RESTAPI
・アップストリームとの通信はHTTP。

以下のような流れでuploadした画像のurlを開くと、画像が表示されるはずが、なぜかダウンロードされてしまう。。。

  1. ブラウザのformから、Content-Type:multipart/form-data で画像やその他テキストを送信。 

  2. 画像は、 以下の流れでS3にアップロードされる。
    APIGateway → APサーバー → S3

解決方法

・設定からバイナリメディアタイプに、multipart/form-dataを設定する。

APIGatewayは、以下のように
ブラウザなどのクライアントからリクエストを受け取り
それを解釈してルーティング先のapサーバーにリクエストを送りなおしている。

・ クライアント http→  APIGateway http→ APサーバ

この際にAPIGatewayでは、
バイナリファイルとして認識すると明示していないContent-Typeに関しては、
テキストなどと同じように処理してしまうため、今回のようなことが起きてしまっていたよう。

バイナリメディアタイプに、明示的に指定してあげれば問題なく登録できるようになる。

参考