2012-07-21 134 views

回答

9

gsutil現在支持cp命令上的noclobber標誌(-n)。將gsutil更新到最新版本(使用gsutil update),然後在執行復制時使用-n標誌。

該標誌將跳過已存在於目的地的文件。

+6

更新:gsutil現在(2014年5月)支持rsync選項。 – 2014-06-02 01:43:44

1

gsutil不支持同步操作,但可以使用gsutil ls編寫腳本來查找遠程存在的文件。

+0

任何想法如何編寫腳本? – ECII 2012-07-24 12:43:44

4

你需要(-n)添加到命令,在Google Cloud Platform正式提到:

-n:無撞。指定時,目標上的現有文件或對象不會被覆蓋。任何由此選項跳過的項目都將被報告爲跳過。此選項將執行額外的GET請求,以在嘗試上載數據之前檢查項目是否存在。這將節省重新傳輸的數據,但額外的HTTP請求可能會使較小的對象傳輸變得更慢並且更昂貴。

例(使用多線程):

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

使用rsync,您可以複製丟失/修改的文件/對象:

gsutil -m rsync -r <local_folderpath> gs://<bucket_id>/<cloud_folderpath> 

此外,如果你使用-d選項,你會也刪除您的存儲桶中不再存在的文件/對象。

另一個選擇可能是使用Object Versioning,因此您將使用本地數據替換存儲桶中的文件/對象,但您始終可以回到以前的版本。