2017-11-21 11 views
0

Googleのクラウドストレージバケットから〜80,000個のイメージを別のものにコピーしようとしています。 私はgsutil 4.28を含むgoogle cloud sdk 180.0.1でmacからこの操作を開始しています。〜10,000個のファイルを転送した後、「cat urls.txt | gsutil -m cp -I gs://ターゲットバケット名/」が一貫してハングアップします

〜各画像のURLは...私はそうのようなCPをgsutilのために送り、テキストファイルにで転送する

urls.txtがどのように見える特徴
$cat urls.txt | gsutil -m cp -I gs://target-bucket-name/ 

...

head -3 urls.txt 
gs://source-bucket-name/1506567870546.jpg 
gs://source-bucket-name/1506567930548.jpg 
gs://source-bucket-name/1507853339446.jpg 

〜10,000個の画像が転送された後も、プロセスは一貫してハングします。

私はコメント解除するの$ HOME/.botoを編集した:

parallel_composite_upload_threshold = 0 

これはハングからの操作を妨げていません。

吊りの原因は不明です。

N個のアイテムを1つのバケットから別のバケットにコピーするには、一般的なユーティリティが必要です。私はその使命を達成するための工夫が必要です。 -mオプションを削除

UPDATE

はぶら下げ問題を回避するようだが、ファイル転送は現在、かなり遅いです。可能であれば並行処理を使用して速度を上げながら、問題を回避できるようにしたいと考えています。

答えて

1
  1. gstuilは掛けてはいけません。これはバグです。 gsutl -Dの出力を記録し、ハングアップすると出力が添付されたgsutil github repoに問題を作成し、ここにリンクを付けてコメントしてください。あなたが出力ログには、次のコマンドを使用することができます。一方で

    $ cat urls.txt | gsutil -D -m cp -I gs://target-bucket-name/ 2>&1 | tee output 
    
  2. を、あなたはパラレルモード(-m)は、あなたの中でこれらのデフォルトを変更することにより、使用するスレッドとプロセスの数を減らすことで実験してみてください可能性がありbotoファイル。

    parallel_process_count = 1 # Default - 12 
    parallel_thread_count = 10 # Default - 10 
    
  3. gsutilのは、すべての新しいバケットにバケットまたはサブディレクトリ内のファイルと同様に、変更されているか、次のコマンドを使用して、ターゲットに存在しないだけでコピーファイルをコピーするためのオプションを持っていることに注意してください。

    gsutil -m cp gs://source-bucket/ gs://target-bucket 
    gsutil -m cp 'gs://source-bucket/dir/**' gs://target-bucket 
    gsutil -m rsync -r gs://source-bucket gs://target-bucket 
    
+0

ありがとうございます。 macosのgcloud 182(gsutil 4.28)の時点では、動作しているようです。 –

関連する問題