Amazon S3 バケットを使用して静的ウェブサイトをホストしています。バケットがウェブサイトのインデックスページではなくオブジェクトのリストを返すのはなぜですか?

所要時間1分
0

静的ウェブサイトをホストするために Amazon Simple Storage Service (Amazon S3) バケットを使用しています。バケットにリクエストを送信すると、ウェブサイトに設定したインデックスページの代わりに、オブジェクトの XML リストが表示されます。

簡単な説明

Amazon S3 バケットには、ウェブサイトエンドポイントと REST API エンドポイントの両方があります。ウェブサイトエンドポイントは次の形式を使用します。

bucket-name.s3-website-us-west-2.amazonaws.com

REST API エンドポイントは次の形式を使用します。

bucket-name.s3-us-west-2.amazonaws.com

バケットに GET リクエストを送信する場合、Amazon S3 がインデックスページ (Amazon S3 コンソールでは「インデックスドキュメント」と呼ばれる) を返すように、リクエストをウェブサイトエンドポイントに送信する必要があります。REST API エンドポイントに GET リクエストを送信すると、Amazon S3 はバケット内のオブジェクトのリストを返します

Amazon S3 オリジンで Amazon CloudFront ディストリビューションを使用する場合、Amazon S3 がインデックスページを返すように、インデックスページをデフォルトのルートオブジェクトとして設定する必要もあります。

**重要:**エンドポイントは AWS リージョンによって異なります。リージョン別のウェブサイトエンドポイントについては、「Amazon S3 ウェブサイトエンドポイント」を参照してください。リージョン別の REST API エンドポイントについては、「Amazon S3 エンドポイント」を参照してください。

解決策

以下の手順に従って、バケットのウェブサイトエンドポイントを見つけてください。

  1. Amazon S3 コンソールを開きます。
  2. バケットリストから、静的ウェブサイトのホストに使用しているバケットを選択します。
  3. [プロパティ] ビューを選択し、[静的ウェブサイトホスティング] を選択します。
    ウェブサイトのエンドポイントは、Endpoint としてリストされている値です。

Amazon S3 オリジンで CloudFront ディストリビューションを使用している場合は、以下の手順に従ってディストリビューションのデフォルトルートオブジェクトをインデックスページに設定します。

  1. CloudFront コンソールを開きます。
  2. ディストリビューションリストから、S3 バケットに関連付けられているディストリビューションを選択します。
  3. [一般] ビューから [編集] を選択します。
  4. [デフォルトルートオブジェクト] には、インデックスページのオブジェクト名 (「index.html」など) を入力します。
  5. [はい、編集します] を選択します。

関連情報

ウェブサイトエンドポイントと REST API エンドポイントの主な違い

AWS公式
AWS公式更新しました 5年前
コメントはありません

関連するコンテンツ