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

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

我可以使用什么工具将本地目录的内容与 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/Instructions

对于 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)创建可挂载的文件系统,但请注意以下事项:

  • 使用类似 --size-only 的方法来确定文件是否已完全写入,而不是 -a 或类似的东西,因为不支持设置权限和时间
  • 使用 --bwlimit 不会起作用,因为模块将写入缓存在内存中的临时文件中,然后在上传时占用所有带宽;我正在使用 trickle 实用程序进行实验,看看是否有帮助

答案4

我认为您可以使用 rsync 来实现这一点,但无论出于什么原因它都不适合您,也可以尝试:Unison 文件同步器,效果确实很棒!

相关内容