オンラインストレージを活用したい
Google も Google Drive で参入し、にわかに注目度が上がってきたオンラインストレージ(クラウド)です。
いままで Amazon S3 を Jungle Disk 経由で使っていたのですが*1、使い方にポリシーが欠如しているためか、請求額が増えてきてしまいました。そこで、Dropbox と Google Drive と AWS S3 の使い分けを検討中です。本当は一本化(野口先生言うところのポケット一つ原則)したいところですが、まだ pro, con がありますね。
AWS S3 が優れているのは、パスワード認証に頼らないセキュア性、信頼性目標に対する数値の提示などでしょうか。Dropbox が優れているのは、長期運用に基づく安心感でしょうか。Google Drive に期待するのは、とにかく安いことでしょう。(^^)
Jungle Disk は、私の環境ではクライアントの動作が安定しませんし、Dropbox や Google Drive と違って、ローカルディスクをオンラインストレージのキャッシュとしてしか利用しないためか、相性の悪いアプリケーションが多いです*2。やはり、ローカルディスクの一ディレクトリを、オンラインストレージと完全に同期させてしまう*3、Dropbox などの方法が便利なような気がします。欠点としては、例えば 100GB のオンラインストレージを使いたければ、ローカルに 100GB のディスクが必要となることでしょうか*4。まあ、最近はディスクが安くなっているので大抵は問題になりませんが、SSD しか載っていないラップトップでは、同期ディレクトリの制限が必要になるでしょう。
ところで、S3 を便利に使うツールに s3cmd がありますが、sync コマンドの動作にハマってしまいました。というか、一度アップロードしたファイルを消してしまった。(涙)
これは、rsync と同じ振舞いなんでしょうか。もう、忘れてしまった。
例えば、./foo/bar というディレクトリを s3://bucket_a/backup/foo/bar/ に同期したい場合は、次のようにするのが安全です。
$ cd foo/bar $ s3cmd sync --delete-removed ./ s3://bucket_a/backup/foo/bar/
ここで、うっかり
$ cd foo $ s3cmd sync --delete-removed bar/ s3://buket_a/backup/foo/ # ← 危険!
とかすると、リモートの foo にあった、他のディレクトリが delete-removed されてしまうのです。キャー!!
気をつけましょう。普段は、-d -v オプションを付けるのが良いでしょう。また、動作を確認するまでは、-n オプション(dry-run)で、想定していないファイルが消されることがないかどうか、十分に確認したほうが良いでしょう。必要がなければ、--delete-removed を使わないというのも手です。
ちなみに、s3cmd 1.0.1 を Cygwin 上の Python でインストールしてみましたが、デフォルトで日本語ファイル名も問題なく通るようです。(シェルや端末での日本語入力や表示はさておき、ファイル名は化けずにアップロード、ダウンロードできました。)