s3のstatic website hostingをcliしてみる
Date:2013-11-10 20:24:28 +0900
Categories: TECHNOLOGY
Categories: TECHNOLOGY
まずコマンドをひとつひとつ確かめていこう。
バケットの作成
まずはバケットの作成
$ aws s3 mb s3://wnt.workapart.org/ make_bucket: s3://wnt.workapart.org/
うお、簡単すぎる。
static website hostingの値を変更する
# 設定する。json部分をシングルクォーテーションで囲むのがみそらしい $ aws s3api put-bucket-website --bucket "wnt.workapart.org" --website-configuration '{ "ErrorDocument": { "Key": "error.html" }, "IndexDocument": { "Suffix": "index.html" } }' # 一応設定出来ているか見てみる $ aws s3api get-bucket-website --bucket "wnt.workapart.org" { "RedirectAllRequestsTo": {}, "IndexDocument": { "Suffix": "index.html" }, "ErrorDocument": { "Key": "error.html" }, "RoutingRules": [] }
bucket policyの設定
$ aws s3api put-bucket-policy --bucket "wnt.workapart.org" --policy file://put-bucket-policy.json
jsonファイルはこんな感じ
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AddPerm", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::wnt.workapart.org/*" } ] }
ファイルの転送
aws s3 sync 元ファイル 転送先 ッて感じだろうか。
$ aws s3 sync /filepath/wnt/ s3://wnt.workapart.org/ upload: ./error.html to s3://wnt.workapart.org/error.html upload: ./index.html to s3://wnt.workapart.org/index.html
よしよしこれで、一発スクリプト化する素材が揃ったので、合体させてみようか。
↓
これらのコマンドを重ねて.shにして(エラー処理なし)
今んとこうまく行ってるっぽいすね。
引っかかったところ
・put-bucket-policy
aws s3api put-bucket-policy — bucket “wnt.workapart.org” — policy put-bucket-policy.json
A client error (MalformedPolicy) occurred: Policies must be valid JSON and the first byte must be ‘{’
=> — policyのところのファイル名を put-bucket-policy.json -> file://put-bucket-policy.json
これ常識なのかしら、知らんかったってか超ハマった。