You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过CloudShell获取S3桶中指定日期后修改的最大N个文件?

AWS S3 list-objects-v2 命令日期筛选失效问题解决

你的命令问题出在JMESPath查询的逻辑顺序和语法错误:你用&&同时执行了两个独立的查询——一个是筛选日期后的文件Key,另一个是对所有原始文件按大小排序取Top5,这两个结果会被合并,导致日期筛选的限制没作用到排序的集合上,所以会出现早于指定日期的文件。

要实现「先筛选2022-12-28及之后修改的文件,再取其中最大的5个」的需求,正确的命令应该是:

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

命令拆解:

  • Contents[?LastModified>='2022-12-28']:先从所有对象中筛选出2022-12-28及之后修改的子集
  • sort_by(..., &Size):对这个筛选后的子集按文件大小升序排序
  • [-5:]:取排序结果的最后5个(即最大的5个文件)
  • .Key:提取这5个文件的Key字段

注意:命令里的日期字符串需要用转义单引号包裹(\'2022-12-28\'),避免被shell解析错误。

内容的提问来源于stack exchange,提问作者Andrew Savetchuk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 05:40:26