"cat urls.txt | gsutil -m cp -I gs://target-bucket-name/" 在传输约 10,000 个文件后一直挂起
"cat urls.txt | gsutil -m cp -I gs://target-bucket-name/" consistently hangs after transferring ~10,000 files
我正在尝试将大约 80,000 张图像从一个 google 云存储桶复制到另一个。
我正在从 mac 和 google cloud sdk 180.0.1 启动此操作,其中包含 gsutil 4.28.
要传输到文本文件中的每个图像的 ~url,我像这样将其提供给 gsutil cp ...
$cat urls.txt | gsutil -m cp -I gs://target-bucket-name/
其中 urls.txt 看起来像 ...
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 项从一个存储桶复制到另一个存储桶。我需要一个能让我完成那个任务的变通方法。
更新
删除 -m 选项似乎可以解决挂起问题,但文件传输现在明显变慢了。我希望能够避免挂起问题,同时尽可能获得使用并发带来的速度。
gstuil 不应挂起。这是一个错误。您可以记录 gsutl -D 的输出,当它挂起时,在 gsutil github repo 中创建一个问题并附上输出并在此处用 link 评论它吗?您可以使用以下命令记录输出:
$ cat urls.txt | gsutil -D -m cp -I gs://target-bucket-name/ 2>&1 | tee output
与此同时,您可以尝试通过更改 boto 文件中的这些默认值来减少并行模式 (-m) 使用的线程和进程的数量。
parallel_process_count = 1 # Default - 12
parallel_thread_count = 10 # Default - 10
请注意,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
我正在尝试将大约 80,000 张图像从一个 google 云存储桶复制到另一个。 我正在从 mac 和 google cloud sdk 180.0.1 启动此操作,其中包含 gsutil 4.28.
要传输到文本文件中的每个图像的 ~url,我像这样将其提供给 gsutil cp ...
$cat urls.txt | gsutil -m cp -I gs://target-bucket-name/
其中 urls.txt 看起来像 ...
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 项从一个存储桶复制到另一个存储桶。我需要一个能让我完成那个任务的变通方法。
更新
删除 -m 选项似乎可以解决挂起问题,但文件传输现在明显变慢了。我希望能够避免挂起问题,同时尽可能获得使用并发带来的速度。
gstuil 不应挂起。这是一个错误。您可以记录 gsutl -D 的输出,当它挂起时,在 gsutil github repo 中创建一个问题并附上输出并在此处用 link 评论它吗?您可以使用以下命令记录输出:
$ cat urls.txt | gsutil -D -m cp -I gs://target-bucket-name/ 2>&1 | tee output
与此同时,您可以尝试通过更改 boto 文件中的这些默认值来减少并行模式 (-m) 使用的线程和进程的数量。
parallel_process_count = 1 # Default - 12 parallel_thread_count = 10 # Default - 10
请注意,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