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 模拟器来运行du
和 awk
命令
【参考方案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 本地/云位置之间同步