2016-10-03 19 views
1

私の自動化ジョブに問題があります。 クラウドデータフロージョブを起動する前に、以前のファイルに対してgsutil rmを実行しますが、別のデータフロージョブを起動すると古いシャードが残るため、すべてを削除しないようです。 Gsutil rmですべてが削除されない

は、私が試した:

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

gsutil rm -r gs://mybucket/blablah 

しかし、同じ結果を...

奇妙なことは、除去されず、ファイルが最初でも最後でもあるということです。 私はそれが私の2番目の仕事の失敗だったのですが、実際にはログで、実際にはファイルが削除されていないことがわかりました。

削除する非常に多くのファイルがある可能性がありますか? gsutil rmの信頼性には既知の問題はありますか?

私はGoogleのクラウドSDKバージョン0.9.80を使用

おかげ

答えて

2

gsutilのRMを使用すると、Googleクラウドストレージで、最終的に一貫した操作でバケツ、内のオブジェクトをリストに依存し使用しているコマンド。したがって、オブジェクトが書き込まれた直後にバケット内でこれらのコマンドを実行しても、すべてのオブジェクトが削除されるわけではありません。後でもう一度試してみると成功するはずです。

この問題を回避する方法の1つは、アップロードしたオブジェクトの名前を追跡し、それらのオブジェクトをgsutil rmコマンドで明示的にリストすることです。

xargs gsutil -m rm < objects.manifest 
+0

gsutilのRMはまた、STDIN上のオブジェクトのリストを受け入れ-Iフラグをサポートしています。あなたは、ファイル内のオブジェクトのリストを保持場合たとえば、あなたは、LinuxやMacOS上で、このようなコマンドを実行することができobjects.manifest。 –

+0

Travisの答えは、どのOS(Windowsを含む)でも使用できるのでより良いです。 –

関連する問題