【发布时间】:2019-12-03 11:38:11
【问题描述】:
此命令将大量文件从 Google Cloud 存储复制到我的本地服务器。
gsutil -m cp -r gs://my-bucket/files/ .
有 200 多个文件,每个文件大小超过 5GB。
下载完所有文件后,另一个进程将启动并开始逐个读取文件并提取所需的信息。
问题是,虽然gsutil的copy过程很快,分批下载多个文件的速度非常快,但我还是需要等文件全部下载完再开始处理。
理想情况下,我希望在下载第一个文件后立即开始处理它。但是在多 cp 模式下,似乎无法知道文件何时下载(或者是否存在?)。
根据 Google 文档,这可以在单个文件复制模式下完成。
if ! gsutil cp ./local-file gs://your-bucket/your-object; then
<< Code that handles failures >>
fi
这意味着如果我在没有 -m 标志的情况下运行 cp,我可以获得该文件成功的布尔值,然后我可以开始文件处理。
这种方法的问题是,由于文件正在逐个下载,因此整体下载将花费更长的时间。
有什么见解吗?
【问题讨论】:
标签: google-cloud-platform google-cloud-storage cp gsutil