我可以使用什么工具将本地目录的内容与Rackspace Cloud Files存储桶的内容同步?
我需要一个类似rsync的应用程序来执行镜像,而不是备份应用程序。 我想要的是有能力去做
rsync --update --delete /local/dir/ cloudfiles://bucket
以便远程存储区包含位于/local/dir/
中的文件的精确镜像。
文件的元数据(所有者,权限)并不重要,主目录内没有目录。
将本地目录同步到Rackspace云文件的最简单方法是通过openstack / swift项目提供的控制台工具。 在Ubuntu上,这些工具可以用apt-get install python-swiftclient
然后,假设您在要上传的目录中,请在terminal中运行以下命令:
$ swift -A https://auth.api.rackspacecloud.com/v1.0 -U <username> -K <api-key> upload <containername> . --changed
这将recursion地将当前目录中的file upload到<containername>
容器,通过上传仅更改的文件来节省时间。 您需要提供您用于login云控制面板的<username>
和同一控制面板中“帐户/帐户设置”下可用的<api-key>
。
注意 :如果使用相对path或绝对path,swift会使用命令行提供的伪path将它们上载到容器中。 所以如果不是同步.
你同步/var/www/test
,那么文件将在容器的/var/www/test
伪path下结束 – 很可能,这不是你想要的。
对于Linux,我发现这个旧的项目: http : //code.google.com/p/cloudfiles-sync/wiki/Instructions
对于Windows有这个GUI工具: http : //www.cloudberrylab.com/free-openstack-storage-explorer.aspx
我也刚刚发现这个工具,可以让你挂载云文件存储: http : //smestorage.com/?p=static&page=LinuxDrive
您可以使用Rackspace Cloud Files FUSE模块( http://www.rackspace.com/knowledge_center/article/mounting-rackspace-cloud-files-to-linux-using-cloudfuse )来创build可安装的文件系统,但要注意以下警告:
另一种可能的select是,作为CloudFuse的另一种select,将Rackspace Cloud Files作为运行rsync的卷,可以将Caimito作为Cloud-Files-to_WebDAV桥运行。
然后,虽然你可以尝试使用带有rsync的Fuse DAV2文件系统插件和一些特殊的命令行选项来通过桥接文件到云文件,但我推荐“sitecopy”,它的核心是与Unison非常不一样。
https://www.howtoforge.com/maintaining-remote-web-sites-with-sitecopy-debian-squeeze-ubuntu-11.10
Sitecopy通过WebDAV将文件推送到其目标(即使我们的目标是Cloud文件的前端模拟层)也是非常棒的工作。 这是因为“sitecopy”维护远程文件元数据的本地数据库,可以快速批量比较rsync。
Caimito令人惊讶的稳定,易于安装和configuration,尽pipe它的Java根源。
你可能会得出这样的结论:使用“swift”(上面提到的)可能是解决scheme的一个更直接的载体,但是这个解决scheme给了你更多的探索,剖析,debugging和控制数据stream的地方。
我认为你可以使用rsync,但它不适用于任何reasson也尝试: Unison File Synchronizer ,它真的很好!