什麼是刪除多個雲存儲對象的最佳方式?我有一個包含〜500K對象的桶,我想將它們全部刪除。批量刪除雲存儲對象
您是否必須爲每個要刪除的對象創建1個api請求,或者是否存在某種批處理方法?我正在使用gsutil一次刪除一個。
什麼是刪除多個雲存儲對象的最佳方式?我有一個包含〜500K對象的桶,我想將它們全部刪除。批量刪除雲存儲對象
您是否必須爲每個要刪除的對象創建1個api請求,或者是否存在某種批處理方法?我正在使用gsutil一次刪除一個。
您需要爲每個對象提出1個api請求。最簡單的方法來完成,這將是與gsutil:
$ gsutil -m rm gs://bucket_with_many_objects/**
-m選項啓用多線程,這將同時刪除許多對象。
請注意,使用gsutil時,「*」通配符只會匹配頂級對象(直到路徑名中的下一個「/」)。如果你想刪除您可以將所有對象要麼使用:
$ gsutil -m rm -R gs://bucket_with_many_objects
或
$ gsutil -m rm gs://bucket_with_many_objects/**
邁克·施瓦茨,谷歌雲存儲團隊
我也有類似的問題,包含了一個水桶800,000個對象,gsutil -m rm gs:// bucket-name方法可以工作,但需要很長時間,因爲它實質上仍然是一次刪除一個對象。
在谷歌聯繫雲存儲團隊之後,他們向我指出了存儲桶生命週期策略的方向,雖然不是即時的,但它們允許您以更有效的方式批量刪除對象。
我寫了一個blog post on Deleting Full Buckets使用這種方法。
感謝您發佈該blob發佈。 (1)關於你的評論,rb命令沒有提供強制刪除存儲桶及其內容的方法:gsutil rm -r gs://存儲桶名將會去做。 (2)爲了進一步加速你可以在多臺機器上運行命令,例如在機器1上運行「gsutil -m rm -r gs:// bucket-name/a *」,在機器2上運行「gsutil -m rm- r gs:// bucket-name/b *「等等。你如何分配工作取決於你的對象是如何命名的,但希望你能明白。 – 2016-12-25 18:57:25
感謝您的-m選項!!!!!!! – aloo 2013-02-15 00:41:43