Search code examples
amazon-web-servicesamazon-s3aws-cloudshell

How to get N files from S3 bucket ordered by max size and modified after certain date using CloudShell?


I tried to use this command:

aws s3api list-objects-v2 --bucket BUCKETNAME --query 'Contents[?LastModified>=2022-12-28].Key && sort_by(Contents, &Size)[-5:]'

And while it searches for 5 files ordered by max size, the files may be last modified before 2022-12-28, it seems that part of the query is just being ignored.

What am I doing wrong?

With the command above I expected to see files ordered by max size that were modified AFTER or on 2022-12-28.


Solution

  • After some time I finally found the solution, this will get 5 objects sorted in ascending order of size among objects modified after 2022-12-28

    aws s3api list-objects-v2 --bucket BUCKETNAME --query 'sort_by(Contents[?LastModified>=`2022-12-28`], &Size)[-5:]'