如何获取S3存储桶上每个文件夹的总对象和总存储量

时间:2016-05-18 11:27:06

标签: amazon-web-services amazon-s3

我有一个名为camera-assets的S3存储桶,在该存储桶中,每个摄像头都有一个单独的文件夹,每个文件夹包含数百万/十亿个文件。我想在我的存储桶中获取每个文件夹的总数量和存储空间。

我尝试了以下CLI命令:

aws s3api list-objects --bucket camera-assets --prefix 1011-front-external/snapshots/ --output json --query "[sum(Contents[].Size), length(Contents[])]"

但未能得到结果,因为文件夹有数百万/十亿的文件。如果只有几个文件,它就可以工作。

请帮助我获取文件数和存储量。

2 个答案:

答案 0 :(得分:5)

AWS命令行界面工具具有--recursive选项(必须与$ aws s3 ls s3://camera-assets --summarize --recursive ... Total Objects: xx Total Size: xx 一起使用),其中显示了对象的数量和数量。总大小:

public override List<Job> GetJobs(List<B> bs) {
   return bs.Select(b => new BuildJob(a, b)).Cast<Job>().ToList();
}

答案 1 :(得分:0)

我没有一个包含您的数据量的存储桶,但我发现s4cmd在过去非常好

您可以将命令作为

运行
$ s4cmd du s3://camera-assets
$ s4cmd du s3://camera-assets/1011-front-external/snapshots/

您可以做的是查看cloudwatch - 选择S3指标,为每个存储桶提供2个指标: - NumberOfObjects - NumberOfObjects

好处是你会看到它是如何随着时间的推移而发展的 - 缺点是它只在桶级别,所以你不能达到文件夹级别。