Google云端存储 - GSUtil - 复制文件,跳过现有文件,不要覆盖

时间:2012-07-21 10:52:26

标签: linux copy sync google-cloud-storage

我想将本地目录同步到Google云端存储中的存储分区。我想复制远程不存在的本地文件,跳过已经存在的远程和本地文件。使用GSUtil可以做到这一点吗?我似乎无法为GSUtil找到“同步”选项或“不要覆盖”。可以编写这个脚本吗?

我在Linux(Ubuntu 12.04)上?

3 个答案:

答案 0 :(得分:16)

gsutil现在支持cp命令上的noclobber标志(-n)。将gsutil更新到最新版本(使用gsutil update),然后在执行复制时使用-n标志。

此标志将跳过目的地已存在的文件。

答案 1 :(得分:5)

您需要在Google Cloud Platform上正式提到的命令中添加(-n):

  

-n :No-clobber。指定时,不会覆盖目标中的现有文件或对象。此选项跳过的任何项目都将被报告为被跳过。此选项将执行额外的GET请求,以在尝试上载数据之前检查项是否存在。这将节省重传数据,但额外的HTTP请求可能会使较小的对象传输速度变慢且成本更高。

示例(使用多线程):

gsutil -m cp -n -a public-read -R large_folder gs://bucket_name

答案 2 :(得分:1)

gsutil不支持同步操作,但您可以使用gsutil ls编写脚本来查找远程存在的文件。