GSUTIL CP 使用文件大小

Posted

技术标签:

【中文标题】GSUTIL CP 使用文件大小【英文标题】:GSUTIL CP using file size 【发布时间】:2021-05-20 06:42:17 【问题描述】:

我正在尝试将文件从我的 Google 计算实例上的目录复制到 Google Cloud Storage Bucket。我有它的工作,但是有大约 35k 文件,但只有大约 5k 有数据。

是否只能复制超过一定大小的文件?

【问题讨论】:

我编辑了我的答案,因为一开始我建议它来自一个存储桶(作为源),但你是一个计算引擎实例,我认为它是一个 linux,如果不是的话可以安装一个 linux 模拟器来运行 duawk 命令 【参考方案1】:

我没试过,但是...

您应该能够使用可恢复传输并将阈值设置为 5k(默认为 8Mib)来执行此操作。见:https://cloud.google.com/storage/docs/gsutil/commands/cp#resumable-transfers

可能建议专门为此副本设置BOTO_CONFIG (a) 是有意的; (b) 提醒自己它是如何工作的。见:https://cloud.google.com/storage/docs/boto-gsutil

当然,可恢复上传还有一个额外的好处,就是在出现任何故障时恢复。

推荐:在一小部分上试一试,并确认它的效果令您满意。

【讨论】:

【参考方案2】:

虽然仅使用 gsutil 无法做到这一点,但可以通过解析名称并使用 cp 命令上的 -I flag 来处理它们。如果您使用的是 Linux Compute Engine 实例,则可以使用 du 和 awk 命令执行它:

du * |  awk 'if ($1 > 1000) print $2 ' | gsutil -m cp -I gs://bucket2

该命令将使用du *获取计算引擎上当前目录中文件的文件大小,并且只会将大于1000字节的文件复制到bucket2,您可以更改该值以进行调整满足您的需求。

【讨论】:

以上是关于GSUTIL CP 使用文件大小的主要内容,如果未能解决你的问题,请参考以下文章

gsutil rsync 在 gzip/非 gzip 本地/云位置之间同步

GSUTIL CP 文件延迟

gsutil cp 失败 - “无法创建清单文件”

从存储到计算实例运行容器的`gsutil cp`不会复制文件

如何限制从 bigquery 导出到 gcs 的文件大小?

谷歌云存储:gsutil cp -n 不会“跳过现有”或显示正在上传的文件