我需要使用Boto3从S3中获取一个项目列表,但是我不想返回默认的排序顺序(降序),而是希望它通过相反的顺序返回它。
我知道你可以通过awscli:
aws s3api list-objects --bucket mybucketfoo --query "reverse(sort_by(Contents,&LastModified))"
它可以通过UI控制台实现(不确定是客户端还是服务器端)
我好像看不懂怎么用Boto3做这个。
我现在正在提取所有的文件,然后进行排序…但这似乎太过分了,尤其是如果我只关心最近10个左右的文件。
过滤系统似乎只接受s3的前缀,而不接受其他前缀。
我对@helloV在下面发布的内容做了一个小改动。它不是100%最优的,但它得到的工作与boto3的限制,到目前为止。
如果bucket中的对象不多,可以使用Python根据需要对其进行排序。
定义lambda以获取上次修改的时间:
获取所有对象并按上次修改的时间对它们进行排序。
如果要反转排序:
看来用boto3是不行的。根据文档,boto3只支持以下收集方法:
all(), filter(**kwargs), page_size(**kwargs), limit(**kwargs)
希望这对你有所帮助。 https://boto3.readthedocs.io/en/latest/reference/services/s3.html#S3.ServiceResource.buckets
相关问题 更多 >
编程相关推荐