python-3.x - Python- Aws Boto 3 从具有未知深度的存储桶/前缀中搜索子文件夹
问题描述
鉴于我有一个带有多个子文件夹(不同深度)的 S3 存储桶。是否可以根据我正在寻找的子文件夹递归列出所有对象及其路径?
例如:
- 桶:
DataLake-App
- 字首:
App1/2020/06/21/Timestamp/
- 附加子文件夹路径:
....../table_001/**.csv
.... 稍微未知,并且可能具有未知的深度
鉴于我知道表、存储桶和前缀,如果它包含表名并获取其所有内容,我是否可以搜索子文件夹?
如果是这样,那在 AWS 中会是什么样子?在过去的几个小时里,我一直在为此挠头。任何帮助/想法都会很棒!
解决方案
list_objects_v2()
boto3 中的命令将返回存储桶中的所有对象。
通过指定 a Prefix
,它只会返回给定路径中的对象。
如果您希望进行进一步的操作,例如只查找 Key 以 结尾的对象/table_001/**.csv
,那么这应该在 Python 本身中完成,例如使用endswith()
或正则表达式搜索。
请注意,list_objects_v2()
一次只返回 1000 个对象,因此可能需要使用分页器或循环使用ContinuationToken
来返回所有所需的对象。
推荐阅读
- scala - 错误:未找到:Scala 中的值 inputJPG
- powershell - Get-ADGroup 检索不返回其他林中成员的成员(但返回不同域/同一林中的成员)
- java - 宾果号码类:接收错误
- node.js - 使用 Node JS 和 React 出错
- java - 如何编辑对话框文本
- deep-linking - 如何为我的 Android 应用添加深层链接?
- python - 导入 PyInstaller 模块并编译时出错
- python - 重新采样后调整预测概率
- python - 如何将python字符串元组转换为整数元组?
- c - struct Employee {} 比较 struct {} Employee