【发布时间】:2015-02-07 01:28:32
【问题描述】:
我目前正在这样做,但它非常慢,因为我的存储桶中有几 TB 的数据:
gsutil du -sh gs://my-bucket-1/
子文件夹也是如此:
gsutil du -sh gs://my-bucket-1/folder
是否有可能以某种方式在其他地方或以其他更快的方式获得完整存储桶(或子文件夹)的总大小?
【问题讨论】:
标签: google-cloud-storage gsutil
我目前正在这样做,但它非常慢,因为我的存储桶中有几 TB 的数据:
gsutil du -sh gs://my-bucket-1/
子文件夹也是如此:
gsutil du -sh gs://my-bucket-1/folder
是否有可能以某种方式在其他地方或以其他更快的方式获得完整存储桶(或子文件夹)的总大小?
【问题讨论】:
标签: google-cloud-storage gsutil
【讨论】:
You can't wildcard the bucket name 是的,你可以...带有~的运算符表示他们支持RegEx...所以要找到所有以视频开头的桶-使用bucket_name =~ video.*
很遗憾,没有。如果您现在需要知道存储桶的大小,没有比您正在做的更快的方法了。
如果您需要定期检查这一点,您可以启用存储桶日志记录。 Google Cloud Storage 将生成每日存储日志,您可以使用它来检查存储桶的大小。如果这有用,您可以在此处阅读更多信息:https://cloud.google.com/storage/docs/accesslogs#delivery
【讨论】:
du 发出多少请求?每个对象一个,还是以某种方式优化?很高兴从计费的角度了解。
如果您通过启用存储桶日志记录获得的每日存储日志(根据 Brandon 的建议)对您不起作用,那么您可以做的一件事来加快速度,即对 du 请求进行分片。例如,您可以执行以下操作:
gsutil du -s gs://my-bucket-1/a* > a.size &
gsutil du -s gs://my-bucket-1/b* > b.size &
...
gsutil du -s gs://my-bucket-1/z* > z.size &
wait
awk '{sum+=$1} END {print sum}' *.size
(假设您的子文件夹以英文字母开头;如果不是;您需要调整运行上述命令的方式)。
【讨论】:
【讨论】:
以下命令对我有帮助:
gsutil ls -l gs://{bucket_name}
列出所有文件后,它会给出如下输出:
TOTAL: 6442 objects, 143992287936 bytes (134.1 GiB)
【讨论】: