除非我遗漏了什么,否则我所看过的所有api似乎都不会告诉您<S3 bucket>/<文件夹>中有多少对象。有办法统计一下吗?


当前回答

现在S3 API有一个简单的解决方案(在AWS cli中可用):

aws s3api list-objects --bucket BUCKETNAME --output json --query "[length(Contents[])]"

或针对特定文件夹:

aws s3api list-objects --bucket BUCKETNAME --prefix "folder/subfolder/" --output json --query "[length(Contents[])]"

其他回答

在s3cmd中,简单地运行以下命令(在Ubuntu系统上):

s3cmd ls -r s3://mybucket | wc -l

如果使用s3cmd命令行工具,可以获得特定桶的递归列表,并将其输出到文本文件。

s3cmd ls -r s3://logs.mybucket/subfolder/ > listing.txt

然后在linux中,您可以对文件运行wc -l来计算行数(每个对象1行)。

wc -l listing.txt

也可以用gsutil du(是的,一个谷歌云工具)

gsutil du s3://mybucket/ | wc -l

截至2020年11月18日,现在有一种更简单的方法来获取这些信息,而无需对API请求征税:

AWS S3存储镜头

默认的,内置的,免费的仪表板允许您查看所有桶的计数,或在“buckets”选项卡下的单个桶。有许多下拉列表可以过滤和排序几乎任何你想要寻找的合理指标。

最简单的方法是使用开发人员控制台,例如,如果你是chrome浏览器,选择开发人员工具,你可以看到下面,你可以找到和计数或做一些匹配,如280-279 + 1 = 2

...