s3_website で公開する S3 バケットを切り替える
このブログは Jekyll を使っていて、Amazon S3 の Static Web Hosting で公開しています。
「Jekyll サイトを s3_website で Amazon S3 に公開する」にも書いたとおり、RubyGem の s3_website を使ってプッシュしています。今回は s3_website の小ネタです。
複数のバケットにプッシュしたい
ひとつのバケットへプッシュするだけなら困らないのですが、たとえばステージングと本番など、複数のバケットを切り替えることはできません。
s3_website.yml の s3_bucket を手で書き換えればできるのですが、毎回となるとさすがに面倒です。ちょっと強引ですが、rake コマンドと sed を組み合わせてバケットを切り替えれるようにしてみました。
sed を使ってバケット名を設定する行をまるごと書き換えたあと s3_website push
を実行しています。
task :preview do
sh "sed -i -e 's/^s3_bucket: blog.manabusakai.com$/s3_bucket: sta-blog.manabusakai.com/g' s3_website.yml"
sh "jekyll build"
sh "s3_website push"
end
task :public do
sh "sed -i -e 's/^s3_bucket: sta-blog.manabusakai.com$/s3_bucket: blog.manabusakai.com/g' s3_website.yml"
sh "jekyll build"
sh "s3_website push"
end
rake preview
でステージング、rake public
で本番のバケットにプッシュできます。