代码之家  ›  专栏  ›  技术社区  ›  Alex B

如何使用awscli在s3 bucket中找到最小的文件大小?

  •  0
  • Alex B  · 技术社区  · 7 年前

    我试图在S3 bucket中获得文件大小的最小/最大值,我总是得到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\u by(),--没有分页, --页面大小100000

    他们都给出了至少3个记录作为结果。

    0 回复  |  直到 7 年前
        1
  •  1
  •   John Rotenstein    7 年前
    aws s3api list-objects-v2 --bucket my-bucket --query 'sort_by(Contents,&Size)[0].Size' 
    

    这个 sort_by() 按大小排序,所以您只需要使用 [0] .

        2
  •  0
  •   Alex B    7 年前

    一旦我把 --output json 而不是 --output text 它给了我最小的尺寸。

    [
        616
    ]
    

    关于local的另一个优点是从@Dunedan进行查询,看起来像是internaly它检索所有文件并在本地应用sort\u by()(所以我为此付费-与其他方法相比没有成本节约)

    推荐文章