AWSのS3の静的ホスティングで「The IndexDocument Suffix is not well formed 」と出たとき

2020年7月15日

今回はAWSのS3の静的ホスティングで「The IndexDocument Suffix is not well formed 」と出たときの対処法についてご紹介いたします。



AWSのS3の静的ホスティングで「The IndexDocument Suffix is not well formed 」と出たとき

S3であるフォルダ(ここではtest_folderとします)の中にある「index.html」をインデックスドキュメントに設定しようとしたときです。
フォルダの中にある「index.html」をインデックスドキュメントに設定しようとすると、「The IndexDocument Suffix is not well formed 」と出てしまいました。
具体的には「test_folder/index.html」と入力しました。

どうやら、「/」が弾かれており、特定のフォルダの下のファイルをインデックスドキュメントに設定するためには特殊な操作が必要そうです。

いろいろ調べてみたところ、結論から言うと特定のフォルダの下のファイルをインデックスドキュメントに設定することはできません。(後述するCloudFrontを利用しない限りは)

S3のみを使って静的コンテンツを配置したい場合、S3の直下にHTMLファイルを配置しなければならないようです。
海外でもこの件に関しては議論されており、解決策は見つかっておりません。

しかし、CloudFrontを経由させればインデックスドキュメントを別の場所に設定することも可能らしいです。
私は試してないですが、S3+CloudFrontでOrigin Pathをインデックスドキュメントにしたい場所に設定すればS3の特定のフォルダの下のファイルをインデックスドキュメントとして設定できるらしいですね。

ただ、S3を使って静的ホスティングをする場合、所詮は静的コンテンツなのでS3の直下にインデックスドキュメントにしたいファイルを設置できるようにソースコードを組み替えた方が良さそうだと私は感じました。

終わりに

今回はAWSのS3の静的ホスティングで「The IndexDocument Suffix is not well formed 」と出たときの対処法についてご紹介いたしました。

最後までお読みいただきありがとうございます。
ブログやTwitterでのシェアOKです。
コメントもお待ちしております。
誤植や勘違いなどございましたらコメント欄にて教えていただけると幸いです。






S3

Posted by ちこ