Milk+ea

Weblog Is My Hobby.

【Jekyll】AmazonS3にブログをアップロードするまで

AWSアカウント取得後から。

環境

Bucket

作る

noneをクリックして、BucketNameとRegionを設定します。
none
RegionはTokyo。
BucketNameは生成されるURL

http://[Bucket Name].s3-website-ap-northeast-1.amazonaws.com/index.html

の[Bucket Name]に入れたい名前を入力。

設定する

CreateするとAllBacketの中に今作ったBucketができています。
メニューの"Static Website Hosting"と"Permissions"だけ編集する必要があるので、今作ったBucketを選択して右上のPropertiesを選択します。
none

Static Website Hosting

下のようにしてSave。
none

Permissions

Edit Bucket Policyをクリック。
特に何も考えずに下をコピペします。
"Resource"のある行の[BucketName]を自分のBucket名に変更した後にSaveします。

{
    "Version": "2008-10-17",
    "Statement": [
        {
            "Sid": "PublicReadForGetBucketObjects",
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::[BucketName]/*"
        }
    ]
}

s3_website

インストール

下を実行

gem install s3_website

エラーが起こる場合

RailsInstallerRubyをインストールしている人は下のようなエラーが出るかもしれません(出た)。

invalid gem format for C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/c
ache/nokogiri-1.6.0-x86-mingw32.gem

nokogiri 1.6.0-x86-mingw32のDownloadからダウンロードをした後、それでエラーが起きている元ファイルを上書きしたらインストールできました。
none

jekyllの_siteをアップロードする

Jekyllプロジェクトのディレクトリで下を実行。

s3_website cfg create

するとディレクトリにs3_website.ymlというファイルができるので編集します。

s3_id: YOUR_AWS_S3_ACCESS_KEY_ID
s3_secret: YOUR_AWS_S3_SECRET_ACCESS_KEY
s3_bucket: your.blog.bucket.com
             …
# s3_endpoint: ap-northeast-1

idとsecretはAWS | セキュリティ証明書の"アクセスキーID"と"シークレットアクセスキー"をコピペします。 アクセスキーIDとシークレットアクセスキー

bucketは自分のbucket名。

RegionをTokyoにした人はs3_endpoint: ap-northeast-1のコメント(# )を取ります。

編集が終ったら下を実行。

s3_website push
Deploying _site/* to [Bucket Name]
Calculating diff /

となって

Done! Go visit: [URL]

となれば多分アップロードできています。
URLにアクセスして表示されたらおっけぃ。