hamayuzinの日記

エンジニアとかデータサイエンティストとかやってます。あの時 あれやってたな的な備忘録にできれば。

【aws/api gateway/lambda/s3】 api gateway ⇔ lambda ⇔ s3 で、動的に画像のresize S3で404redirect 番外編

目次

  1. 全体像編
  2. lambdaでのresize編
  3. api gateway 編
  4. railsから叩いてみる編
  5. S3で404redirect 番外編 いまここ

S3リダイレクト

S3には、該当のファイルがない404エラーの時に 指定したURLにredirectしてくれる機能がある

詳しくは下記

dev.classmethod.jp

設定部分

<RoutingRules>
  <RoutingRule>
    <Condition>
      <HttpErrorCodeReturnedEquals>404</HttpErrorCodeReturnedEquals>
    </Condition>
    <Redirect>
      <Protocol>https</Protocol>
      <HostName>api.url</HostName>
      <ReplaceKeyPrefixWith>bucket_name</ReplaceKeyPrefixWith>
    </Redirect>
  </RoutingRule>
</RoutingRules>

問題

S3にファイルがあるかリクエスト飛ばすと 404エラーを検知して、301 redirectを返してくれる。

ブラウザなら問題ないが rails側で叩くと 単純に 301のresponseと 次のlocationが返ってくるだけで 二度手間なので、今回はやらなかった。