ローカル ディレクトリの内容を Rackspace Cloud Files バケットのものと同期するには、どのツールを使用できますか?
バックアップアプリケーションではなく、ミラーリングを行うためのrsyncのようなアプリケーションが必要です。私が欲しいのは、
rsync --update --delete /local/dir/ cloudfiles://bucket
リモート バケットには、 にあるファイルの正確なミラーが含まれます/local/dir/
。
ファイルのメタデータ (所有者、権限) は重要ではなく、メイン ディレクトリ内にはディレクトリはありません。
答え1
ローカルディレクトリをRackspaceクラウドファイルに同期する最も簡単な方法は、openstack/swift プロジェクトUbuntuでは、ツールは次のようにインストールできます。apt-get install python-swiftclient
次に、アップロードしたいディレクトリにいると仮定して、ターミナルで次のコマンドを実行します。
$ swift -A https://auth.api.rackspacecloud.com/v1.0 -U <username> -K <api-key> upload <containername> . --changed
これにより、現在のディレクトリからコンテナにファイルが再帰的にアップロードされ、変更されたファイルのみがアップロードされるため、時間が節約されます。クラウド コントロール パネルにログインするために使用する と、同じコントロール パネルのアカウント/アカウント設定で使用できる を<containername>
指定する必要があります。<username>
<api-key>
注意: 相対パスまたは絶対パスを使用する場合、Swiftは疑似パスでアップロードします。コマンドラインで提供されるコンテナに。したがって、同期する代わりに sync を実行すると.
、/var/www/test
ファイルはコンテナの疑似パスの下に置かれることになります/var/www/test
が、これはおそらく望んでいることではありません。
答え2
Linux の場合、この古いプロジェクトを見つけました:http://code.google.com/p/cloudfiles-sync/wiki/手順
Windows の場合、次の GUI ツールがあります。 http://www.cloudberrylab.com/free-openstack-storage-explorer.aspx
また、クラウド ファイル ストレージをマウントできる可能性のある次のツールも見つけました。http://smestorage.com/?p=static&page=LinuxDrive
答え3
Rackspace Cloud Files FUSEモジュール(http://www.rackspace.com/knowledge_center/article/mounting-rackspace-cloud-files-to-linux-using-cloudfuse) を使用してマウント可能なファイルシステムを作成することもできますが、次の点に注意してください。
- ファイルが完全に書き込まれたかどうかを判断するには、-a などではなく --size-only などを使用してください。権限と時間の設定はサポートされていないためです。
- --bwlimit を使用すると、モジュールがメモリ内の一時ファイルに書き込みをキャッシュし、アップロード時にすべての帯域幅を消費するため、機能しません。trickle ユーティリティを使用して、それが役立つかどうかを確認する実験を行っています。
答え4
そのために rsync を使用できると思いますが、何らかの理由でそれが機能しない場合は、次のことも試してください。Unison ファイル シンクロナイザー、本当に素晴らしい効果があります!