🦁

【sls】serverless-s3-localで署名付きURLを使用したオブジェクトのアップロードを可能にする

2022/01/16に公開

はじめに

serverless framework & s3 を利用した開発環境を整備するために調査した内容を投稿させていただきます。

実現したいこと

serverless-s3-localで署名付きURLを使用したオブジェクトのアップロードを可能にする。

image

設定・実装

serverless.yml

serverless-s3-localで署名付きURLを使用したオブジェクトのアップロードを可能にするためには以下の2つを有効化する必要がある。

  1. allowMismatchedSignatures
  2. CORS
serverless.yml
# 省略

plugins:
  - serverless-s3-local
  - serverless-offline

custom:
  s3:
    host: localhost
    directory: /tmp
+   allowMismatchedSignatures: true
+   cors: config/s3_cors_rule.xml

# 省略
config/s3_cors_rule.xml
<CORSConfiguration>
    <CORSRule>
        <AllowedOrigin>*</AllowedOrigin>
        <AllowedMethod>PUT</AllowedMethod>
        <MaxAgeSeconds>3000</MaxAgeSeconds>
        <AllowedHeader>*</AllowedHeader>
    </CORSRule>
</CORSConfiguration>

HTML/JS

署名付きURLのリクエスト(HTML/JS)は以下のサイトが参考になった。

参考

Discussion