AWS S3 CLI:使用单个--query 对所有顶级前缀中的字节求和?

AWS S3 CLI:使用单个--query 对所有顶级前缀中的字节求和?

我有一个 S3 存储桶,里面有很多顶级前缀。我有一种相对低效的方法来汇总顶级前缀中的字节数:

  1. 通过获取前缀列表aws s3 ls [bucket name],然后使用一些 sed/grep。
  2. 对这些前缀执行 bash for 循环,运行aws s3api list-objects --bucket [bucket name] --prefix $prefix --output json --query [sum(Contents[].Size)]

我觉得这不是最理想的,因为所有常见的原因都表明 for 循环不是最理想的。首先,我希望它在 AWS 端自动并行化。

我觉得 JMESPath 中一定有一种方法,本质上就是返回所有顶级前缀的 (Prefix, Sum(Size)) 对列表。但我不知道该如何实现。添加--delimiter '/'只会返回 CommonPrefixes;它不会返回任何其他信息(包括大小),所以我无法使用它来获得我想要的总和。

我是不是漏掉了什么技巧?还是 for 循环是我最好的选择?

相关内容