首页 > 解决方案 > Python- Aws Boto 3 从具有未知深度的存储桶/前缀中搜索子文件夹

问题描述

鉴于我有一个带有多个子文件夹(不同深度)的 S3 存储桶。是否可以根据我正在寻找的子文件夹递归列出所有对象及其路径?

例如:

.... 稍微未知,并且可能具有未知的深度

鉴于我知道表、存储桶和前缀,如果它包含表名并获取其所有内容,我是否可以搜索子文件夹?

如果是这样,那在 AWS 中会是什么样子?在过去的几个小时里,我一直在为此挠头。任何帮助/想法都会很棒!

标签: python-3.xamazon-web-servicesamazon-s3boto3

解决方案


list_objects_v2()boto3 中的命令将返回存储桶中的所有对象。

通过指定 a Prefix,它只会返回给定路径中的对象。

如果您希望进行进一步的操作,例如只查找 Key 以 结尾的对象/table_001/**.csv,那么这应该在 Python 本身中完成,例如使用endswith()或正则表达式搜索。

请注意,list_objects_v2()一次只返回 1000 个对象,因此可能需要使用分页器或循环使用ContinuationToken来返回所有所需的对象。


推荐阅读