AWS
S3

S3の静的ホスティング設定手順メモ


S3で静的ホスティングする


手順

"バケット作成"→バケット名を入れて→"③アクセス許可の設定"まで"次へ"



"③アクセス許可の設定"で"パブリックアクセス許可を管理する"を"このバケットにパブリック読み取りアクセス権限を付与する"へ変更して、バケット作成まで完了させる。



バケット一覧に戻るので、バケットに"パブリック"と付いてるのを確認する



作成したバケットを選択して、"プロパティ"→"static website hosting"→"このバケットを使用してウェブサイトをホストする"を選択→インデックスドキュメントを適当に入力→"保存"



バケットにファイルをアップロード



アップロードしたファイルを選択して、"アクセス権限"→"パブリックアクセス"→"Everyone"→"オブジェクトの読み取り"にチェックを入れて"保存"



URLは http://<バケット名>.s3-website-<リージョン名>.amazonaws.com/<ファイルパス>

※公式サイト



アクセスして表示されれば成功。


既に存在してるバケットに対しての設定

バケット選択→"アクセス権限設定"→"パブリックアクセス"→"オブジェクトへのアクセス"の"オブジェクト一覧"へチェックを入れる



上の手順の"static website hosting"の設定のところから同じ手順で実行する


補足

アップロードするたびにアクセス権限の設定をファイル毎にやる必要があり非常に手間なので、↓を使って一括で権限付与する。

$ aws s3 ls --recursive s3://${バケット名}/ | awk '{print $4}' | xargs -I{} aws s3api put-object-acl --acl public-read --bucket ${バケット名} --key "{}"

こちらより拝借