Amazon S3 におけるオブジェクトのリクエスト処理は、大文字と小文字が区別されるか教えてください。

2023.01.23

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

困っていること

Amazon S3 にファイルを保存して Web を公開する予定です。
下記のように、保存されているファイル名が大文字(ABCDEFG)小文字(abcdefg)場合、Amazon S3 のオブジェクトリクエストは区別されて処理されるのか教えてください。

ファイル保存名の例

# 大文字 (ABCDEFG)
https://s3sample-test.s3.ap-northeast-1.amazonaws.com/test/ABCDEFG1234567890.jpg

# 小文字 (abcdefg)
https://s3sample-test.s3.ap-northeast-1.amazonaws.com/test/abcdefg1234567890.jpg

どう対応すればいいの?

はい、下記 AWS re:Post 記載の通り Amazon S3 のオブジェクトリクエストでは、大文字と小文字が区別される仕様です。
オブジェクト名が "abcdefg1234567890.jpg" で、"ABCDEFG1234567890.jpg" をリクエストしている場合、リクエスターは 404 NoSuchKey エラーを受け取ります。
リクエスト処理に有効なオブジェクト名がない場合、Amazon S3 はオブジェクトを見つけることができないため、全て小文字で作成するなどの対応をしてください。

Confirm that the request matches the object name exactly, including the capitalization of the object name. Requests for S3 objects are case sensitive. For example, if an object is named myimage.jpg, but Myimage.jpg is requested, then requester receives a 404 NoSuchKey error.

参考資料