🙆

1 MBを超えるファイルをS3にアップロードできない

に公開

背景

画面からS3にファイルをアップロードする仕組みを追加しました。

実装後、1 MBを超えるファイルをアップロードできないとの報告がありました。1 MB以下のファイルはアップロードできます。

この記事では、調査と対応の内容を記録します。

調査したこと

このシステムはECSで動かしています。まずはインフラ側からということで、AWSサービスの設定を疑いました。

S3にアップロードできないので、S3の問題ではないかと考えました。S3の設定でサイズを制限するような設定があるかを確認しました。

しかし、アップロードサイズを制限するような設定はありません。

また、ALBも疑いましたが、ALBもサイズ制限をするような設定はありませんでした。

原因はSpring

次にコンテナで動いているJavaアプリを疑いました。

ここでようやくCloudWatch Logsを確認します。「先にログを確認する」ということを、自分への戒めにします。

CloudWatch Logsを参照し、以下のログが出力されていることを確認しました。

2025-03-xxT11:06:33.025+09:00
org.apache.tomcat.util.http.fileupload.impl.FileSizeLimitExceededException: The field file exceeds its maximum permitted size of 1048576 bytes.

このログから、ファイルアップロードの上限に達していることが分かりました。

spring.servlet.multipart.max-file-sizeの設定です。この設定を追加していない場合、デフォルトの上限である1 MBが適用されます。

対応

application.ymlspring.servlet.multipart.max-file-sizeの設定を追加しました。

これで大きなサイズのファイルをアップロードすることができました。

参考にした記事

ファイルサイズの上限

Spring MVC ファイルのアップロード #spring - Qiita

GitHubで編集を提案

Discussion