S3に大きなファイルをアップロードした時、イベントが発火しない問題の原因と対策メモ


ファイル作成(PUT/POST)時にLambda FunctionをキックするイベントをセットしたS3のバケットがある。このバケットに対して、AWS SDK for Ruby 経由でサイズが大きなファイルをアップロードしたところ、イベントが発火しない問題があった。調査にそこそこ時間がかかったのでメモ。

まとめ

  • 原因は、ファイルアップロードの方式が「PUT」から「Multipart Upload」に変わったため。AWS SDK for Rubyのデフォルト設定ではファイルサイズが「15MB」以上になると、アップロード方式が自動的に切り替わる。
  • さらに、S3のイベント発火対象の操作に「Complete Multipart Upload」を選択していなかったため、アップロード方式が「Multipart Upload」になるとイベントが発火しなかった。
  • 対策は、イベント発火対象の操作に「Complete Multipart Upload」を追加で選択すればOK。

続きを読む →