某ホスティングサービス上で(ほとんど誰も見てない)静的なWeb Siteを運用していたのだけど、今どきもっと他の方法があるだろう、ということで調べてみた。もちろん、App Engineでやることもできるのだけど、それはちょっとどうなの?ということで。
そもそも静的なのだから、データが配れればいいというだけの話なので、ストレージサービスでやってみようと思ってぐぐってみたらS3ではできますよという記事が引っかかった。じゃあ、S3でやればいいのだけど有償になる。Google Storageのほうは、GMailの容量を増やすためにどうせ有償化していたので、こっちでやってみた。
やりかた
gsutilの設定が終わっていれば、実はすごく簡単。
> gsutil mb gs://BUCKET_NAME
ディレクトリツリーをアップロード
> gsutil cp -a public-read -R * gs://BUCKET_NAME
- R でリカーシブコピーを指定。-a でだれでも読めるように設定。
これで、
http://commondatastorage.googleapis.com/BUCKET_NAME/XXXX
からアクセスできるようになるはず。
問題点
でも実は、Google Storageには問題点がいくつか。アップロードしたページを表示するだけならこれでOKなんだけど、Web Siteとしての挙動としては不十分。
- / で終わるURLでアクセスした時にデフォルトのhtml (通常はindex.html) にリダイレクトしてくれない。
- 存在しないURLへアクセスした場合に404が返らない。
この記事によると、Amazonではこのあたりがちゃんと出来るようになっているらしい。
実装はそれほど面倒では無さそうなので、サクッと実装してくれないかな >> Googleの人。