与Rackspace Cloud文件存储桶同步/镜像目录

我可以使用什么工具将本地目录的内容与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可安装的文件系统,但要注意以下警告:

    • 使用–size-only之类的东西来确定文件是否完全写入,而不是-a或类似的东西,因为设置权限和时间不受支持
    • 使用–bwlimit不会工作,因为模块caching写入内存中的临时文件,然后在上传时占用所有带宽; 我正在使用涓stream工具进行实验,看看是否有帮助

    另一种可能的select是,作为CloudFuse的另一种select,将Rackspace Cloud Files作为运行rsync的卷,可以将Caimito作为Cloud-Files-to_WebDAV桥运行。

    http://caimito.ngasi.com/

    然后,虽然你可以尝试使用带有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 ,它真的很好!