読者です 読者をやめる 読者になる 読者になる

s3のbucket名のリネームできないらしいのでコピーする

どうもs3のbucket名はリネームできないらしい。
https://forums.aws.amazon.com/thread.jspa?threadID=73503
なので、s3で画像サーバーを運用していてURLを独自ドメインに変えたい場合は、
新たにbucketを作成して、元のbucketからファイルをコピーする必要がある。

このため
http://pastebin.com/PVYmfBGy
のあたりのソースを使って、bucketごとコピーしたり、copy_keyにprefixつけて
一部ディレクトリのみコピーしたりしてみた。

その際に、botoのソースacl(アクセス権限)がコピーされない不具合?があるようで
https://github.com/boto/boto/commit/be6549a2539f763b2b89dc7b548594fad135a813
のパッチをあてると、コピーしたファイルの権限もコピーできるようになった。
※最新のソースだとこのパッチはあたってる?

ちなみにファイル数が少ない場合はAWS の GUI からcopy & pasteするのが一番早そうなんだけど
(PUT COPYを内部でやってくれているらしい。PUT COPYが一番早いようだ。参考URL)
途中でErrorになったりするので必要最低限のファイルのみコピーする方法を考えた方がよい場合もある。