如何使用 gsutil 计算存储桶文件夹中的文件数

问题描述 投票:0回答:7

是否有计算存储桶文件夹中文件数量的选项?

喜欢:

gsutil ls -count -recursive gs://bucket/folder

Result:   666 files

我只是想要一个文件总数来比较 相当于我服务器上的同步文件夹。

我没有在手册中得到它。

google-cloud-storage gsutil
7个回答
112
投票

更新的方法


gsutil 现在有一个 du 命令。这使得计数更容易:

$ gsutil du gs://pub | wc -l
232

旧方法


带有选项-l(长列表)和

-R
(递归列表)的 gsutil
ls 命令
将递归列出整个存储桶,然后在最后生成所有对象(包括文件和目录)的总数:

$ gsutil ls -lR gs://pub
    104413  2011-04-03T20:58:02Z  gs://pub/SomeOfTheTeam.jpg
       172  2012-06-18T21:51:01Z  gs://pub/cloud_storage_storage_schema_v0.json
      1379  2012-06-18T21:51:01Z  gs://pub/cloud_storage_usage_schema_v0.json
   1767691  2013-09-18T07:57:42Z  gs://pub/gsutil.tar.gz
   2445111  2013-09-18T07:57:44Z  gs://pub/gsutil.zip
      1136  2012-07-19T16:01:05Z  gs://pub/gsutil_2.0.ReleaseNotes.txt
... <snipped> ...

gs://pub/apt/pool/main/p/python-socksipy-branch/:
     10372  2013-06-10T22:52:58Z  gs://pub/apt/pool/main/p/python-socksipy-branch/python-socksipy-branch_1.01_all.deb

gs://pub/shakespeare/:
        84  2010-05-07T23:36:25Z  gs://pub/shakespeare/rose.txt
TOTAL: 144 objects, 102723169 bytes (97.96 MB)

如果你真的只想要总数,你可以将输出通过管道传递给

tail
命令:

$ gsutil ls -lR gs://pub | tail -n 1
TOTAL: 144 objects, 102723169 bytes (97.96 MB)

29
投票

如果您可以选择不使用 gsutil,最简单的方法是在 Google Cloud Platform 上进行检查。 转到监控 > 指标资源管理器:

  • 资源类型:GCS Bucket
  • 指标:对象数 然后,在下表中,每个存储桶都有它包含的文档数。

11
投票

你想

gsutil ls -count -recursive
gs://bucket/folder
? 好吧;
gsutil ls gs://bucket/folder/**
将仅列出
gs://bucket/folder
下文件路径的完整 URL,没有页脚或以冒号结尾的行。将其传送到
wc -l
将为您提供结果的行数。

gsutil ls gs://bucket/folder/** | wc -l


4
投票

作为一个桶中有 450 万个对象的人,我用了

gsutil du gs://bucket/folder | wc -l
花了 ~24 分钟


3
投票
gsutil ls -lR gs://Floder1/Folder2/Folder3/** |tail -n 1

2
投票

gist 展示了如何遍历所有 Cloud Storage 存储桶并列出每个存储桶中的对象数量。 @vinoaj

的赞美
for VARIABLE in $(gsutil ls)
do
  echo $(gsutil du $VARIABLE | grep -v /$ | wc -l) $VARIABLE
done

要过滤桶,请添加 grep,例如

for VARIABLE in $(gsutil ls | grep "^gs://bucketname")

在控制台中,您可以单击右上角的激活 Cloud Shell 并将其粘贴到其中以获取结果。如果将命令保存为 bash 脚本,则运行

chmod u+x program_name
以便脚本可以在 GCP Cloud Shell 中运行。

注意:当您执行

gsutil du gs://my-bucket/logs | wc -l
时,结果包括每个存储桶和子目录的“额外”结果。例如,顶级存储桶中的 3 个文件将是 4 个。子目录中的 3 个文件将是 5 个。


2
投票

这不会以递归方式工作,但您也可以从控制台获取单个大文件夹的计数。这种方法的优点是非常快。

  1. 从存储桶的过滤器菜单中选择

    Sort and filter

  2. 反转排序顺序让谷歌云存储计算文件/文件夹的数量。

  3. 查看当前文件夹中文件/文件夹的数量。

© www.soinside.com 2019 - 2024. All rights reserved.