2016-10-03 119 views
1

我的某個自動化作業有問題。 在啓動雲數據流作業之前,我對先前的文件執行gsutil rm,但似乎並沒有刪除所有內容,因爲當我啓動另一個數據流作業時,一些較舊的碎片仍然存在。Gsutil rm不會刪除所有內容

我想:

gsutil -m rm gs://mybucket/blahblah/* 

gsutil rm -r gs://mybucket/blablah 

但同樣的結果......

奇怪的是,不刪除的文件,也不是第一次,也不是最後一個。 我付出這是我的第二個工作的錯,但事實是,我在日誌中看到,確實文件沒有被刪除bu gsutil。

是否有可能刪除太多文件? 是否有已知的gsutil rm可靠性問題?

我使用谷歌雲SDK版本0.9.80

感謝

回答

2

你使用依賴於上市水桶,這是在谷歌雲存儲最終一致性操作的對象的RM的gsutil命令。因此,在寫入對象後立即嘗試這些命令可能不會刪除所有對象。如果您稍後再試,它應該會成功。

避免此問題的一種方法是跟蹤您上傳的對象的名稱,並在gsutil rm命令中明確列出這些對象。例如,如果你不停地在文件中的對象列表objects.manifest你可以像這樣運行在Linux或者MacOS的命令:

xargs gsutil -m rm < objects.manifest 
+0

的gsutil RM還支持接收標準輸入對象列表的-I標誌。 –

+0

Travis的答案更好,因爲它可以用於任何操作系統(包括Windows)。 –