如何使用AWS CLI在s3存储桶中找到最小的文件大小?

时间:2019-04-03 18:21:56

标签: amazon-web-services amazon-s3 aws-cli

我试图在S3存储桶中获取文件大小的最小值/最大值,但我总是得到3个值而不是1个值。 我认为它是由分页控制的,但是我无法禁用它。

aws s3api list-objects-v2 
--bucket my-bucket-dev 
--prefix subscription/2019/04/01/23 
--output text  
--query 'sort_by(Contents,&Size)[:1].Size'

结果:

618
616
620

如何获得616作为结果而无需在本地排序?

  

注意:我尝试了sort(),min(),max()max_by(),--no-pagination,   --page-size 100000

     

它们都至少给出3条记录。

2 个答案:

答案 0 :(得分:1)

aws s3api list-objects-v2 --bucket my-bucket --query 'sort_by(Contents,&Size)[0].Size' 

sort_by()按大小排序,因此您只需要使用[0]就可以使用第一个元素。

答案 1 :(得分:0)

一旦我放上--output json而不是--output text,它就会给我最小的尺寸。

[
    616
]

关于@Dunedan中本地--query的另一个好处-看起来它内部检索所有文件并在本地应用sort_by()(所以我为此付出了代价-与其他方法相比没有节省成本)