きっかけ
APIGateWayでS3へのファイルアップロードを行う、LambdafunctionのRestAPIを作成していた
問題発生
動作確認、調査をしようとしていたところ
APIGateWayのペイロードサイズは最大10MBである事が判明
https://docs.aws.amazon.com/ja_jp/apigateway/latest/developerguide/limits.html
回避策
下記のページにて回避策を発見
https://sookocheff.com/post/api/uploading-large-payloads-through-api-gateway/
AWS-SDKを使用すればS3への一時的なアップロードURLを生成できるので
それを使用してアップロードを行う。
具体的な対応
下記の動作仕様を下記の様にする
- アップロードするファイルを格納する(クライアント)
- アップロードボタンをクリックする(クライアント)
- Rest-APIにてS3への一時的なアップロードURLを生成する(サーバサイド)
- S3への一時的なアップロードURLを受け取る(クライアント)
- 生成されたURLでファイルをアップロードする(クライアント)