python - 如何使用python按一定大小过滤和列出s3文件夹中的所有对象
问题描述
我正在尝试在 s3 存储桶的文件夹中获取所有指定大小的文件。如何遍历存储桶并按指定大小过滤文件?我还想返回大小正确的文件名。
s3 = boto3.client('s3')
s3.list_objects_v2(Bucket = 'my-images')
样本输出是
u'Key': u'detail/01018535.jpg',
u'LastModified': datetime.datetime(2019, 1, 23, 0, 48, 41, tzinfo=tzlocal()),
u'Size': 13535,
u'StorageClass': 'STANDARD'},
{u'ETag': '"cd65991a1c6f118e8b036208a30028a7"',
u'Key': u'detail/0119AF2.jpg',
u'LastModified': datetime.datetime(2019, 1, 10, 17, 17, tzinfo=tzlocal()),
u'Size': 12984,
u'StorageClass': 'STANDARD'}
例如,假设我想要搜索 12984 的大小。然后它将返回“密钥”
解决方案
您可以使用--query
表达式:
aws s3api list-objects-v2 --bucket my-images --query 'Contents[?Size==`12984`].[Key]' --output text
我放在[Key]
方括号中以强制每一个出现在单独的行上。
此语法适用于 Mac 命令行。Windows 可能需要不同的引号。
有关使用此类表达式的提示,请参阅:JMESPath 教程
推荐阅读
- javascript - 为什么我不能在组件道具中使用内联函数?可以举个例子详细解释一下吗?失去所有状态是什么意思?
- webclient - CWE ID 201 使用可能的 WebClient.QueryString Add 方法将敏感信息插入到发送的数据中
- html - 如何将其拆分为单独的文件?
- c# - 无法使用 fodicom 从 PACS 保存 DICOM
- python - 如何制作将频道从一个类别移动到另一个类别的命令
- javascript - Material UI - 主题样式 - 排版不起作用
- ios - UIScrollView - 禁用 isScrollEnabled 将整个视图向上拖动
- javascript - 在哪里为 iframe 设置 sameset=none 属性
- vba - 打开方法无法从 ppt 打开 ppts
- javascript - 如何访问从event.composedPath,Javascript返回的数组中的项目的类列表