如何获取 S3 存储桶中所有不同前缀的列表?

2023-12-14

如果我有如下目录结构并且前缀是/folder1,

/folder1/folder11/folder12/folder13/*.files
               /folder21/folder22/folder23/*.files
               /folder31/folder32/*.files

我想动态循环这些目录,以便分别读取每个叶文件夹中的文件,即我需要一个列表

[
 /folder1/folder11/folder12/folder13/, 
 /folder1/folder21/folder22/folder23/,
 /folder1/folder31/folder32/
]

除了递归地循环每个前缀、获取下一级前缀、连接、获取下一级等等,直到到达最后一个(叶)文件夹之外,是否有更好的方法来获取它?


列出来自 Amazon S3 的对象时,如果您指定Delimiter='/',那么它将返回一个列表CommonPrefixes。这实际上是给定子目录的列表Prefix.

但是,我建议您不要考虑目录。相反,只需循环遍历all对象并查看Key了解物体的路径。

如果您只想要包含文件的路径列表,请使用以下命令:

import boto3

BUCKET = 'my-bucket'

s3_resource = boto3.resource('s3')
folders = set()

# Find paths of all non-empty objects (to exclude zero-length 'folder' objects)
for object in s3_resource.Bucket(BUCKET).objects.all():
    if object.size > 0 and '/' in object.key:
        folders.add(object.key[:object.key.rfind('/')])

print (folders)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何获取 S3 存储桶中所有不同前缀的列表? 的相关文章

随机推荐

  • 如何使用 Ruby 将阿拉伯/波斯数字翻译成英语?

    如何将一些具有阿拉伯 波斯数字的字符串转换为英语 就像如果我有 str1 str2 12 str3 some string that contains persian digits like 是否有任何函数将其编码为英语 如果字符串包含这样
  • 调用局部视图

    我有一个渲染两个下拉列表的视图 下拉列表的控制器工作正常 他们调用存储库类中的方法来进行数据库选择 在下拉列表下方 我尝试在部分视图中呈现数据表 以响应下拉列表选择 视图中的下拉菜单使用单个模型 model BudgetDemo Model
  • 将数据表中的行选择限制为 3

    我目前正在使用 jQuery 数据表插件 想知道是否有任何方法可以将行选择限制为 3 现在用户可以选择无限数量的行 这是我的代码的 jsfiddle http jsfiddle net EfFA2 JS document ready fun
  • Ingress 与负载均衡器

    我对 Kubernetes 中 Ingress 和 Load Balancer 的角色很困惑 据我了解 Ingress 用于将来自互联网的传入流量映射到集群中运行的服务 负载均衡器的作用是将流量转发到主机 在这方面 ingress 与负载均
  • 如何在 SVG 中不缩放图像

    所以我有一个 SVG 图像 如下所示
  • Vuetify,如何设置默认道具

    我已经开始使用 Vuetify 但我正在寻找一种修改某些组件上的默认 props 的方法 有没有办法做到这一点 即不必不断地写
  • “]”附近的语法不正确。?

    我已经对我的 sql 进行了一些调试 但我无法弄清楚我遇到的令人抓狂的错误 我已将其缩小到几行 我看不出问题是什么 请有人给我一些帮助 我收到这个错误 我在这里2 消息 102 第 15 级 状态 1 第 1 行 附近语法不正确 我在这里3
  • 如何将 Font Awesome 图标添加到输入字段?

    如何使用 Font Awesome 中包含的搜索图标进行输入 我的网站上有一个搜索功能 基于 PHPmotion 我想将其用于搜索 这是代码 div div
  • Java Restful服务eclipse tomcat HTTP错误404

    我尝试跟上 java 休息服务 所以我找到了一些教程 它们的解释总是相同的 但我无法让它运行 我在eclipse中制作了2 5版本的Dynamic Web Project和Tomcat 7 0 然后我将以下 jar 加载到 WEB INF
  • Spring Security - 如何启用方法安全注释?

    StackOverflow 上有很多类似的问题 但我找不到任何答案 我有 web xml 像
  • 在 Python 中创建 jTDS 连接字符串

    我正在尝试使用 Python 建立 jTDS 连接 谁能帮我完成这个任务吗 在 SQL Server 中 我通常使用以下连接字符串进行连接 jdbc jtds sqlserver DBServer port DBInstance useNT
  • 这个方法怎么给我一个-61错误?

    这是我正在使用的一个名为 Mirth 的应用程序 但它似乎来自 Apache Commons 库内部的一个方法 该方法检查某些内容是否确实是 Base64 编码的 所有文档都说唯一的返回是 true 或 false 那么我怎么得到 61 呢
  • 任何用于显示来自相机的实时图像的快速 Python GUI

    我正在尝试显示 1394 相机的实时图像 目前 我的代码能够从相机循环获取图像 并且我正在寻找任何可以动态更新的快速 GUI 作为单独的线程 我可以在 PyQt 中使用 QThreads 来做到这一点 但是有没有任何建议或更快的方法来做到这
  • 如何从 unicode (utf-8) csv 文件导入 numpy 数组

    我并不是想聪明或快速地做到这一点 只是想完全做到这一点 我有一个如下所示的文件 cat all user token counts csv 5raphaels in 15 5raphaels for 15 5raphaels unless
  • 应用内购买是否适用于电子书/有声读物?

    我们是一家销售精装书 电子书和有声读物的书店 我们有一个网站 接受客户使用信用卡进行在线支付 我们还有一个 iOS 和 Android 应用程序 用户可以在其中阅读 收听购买的书籍 现在我们想通过我们的 iOS 本机应用程序 以及将来的 A
  • 将 Wordpress 与 Symfony 集成

    我有一个用 Symfony 1 2 构建的网站 我正在尝试将 Wordpress 2 8 4 集成到其中以支持我的博客 我按照以下说明进行操作http www theodo fr blog 2009 03 integrate wordpre
  • Google Cloud Messaging 中泄露的 IntentReceiver

    我已经在我的应用程序中实现了 GCM 并且正在使用GSM注册器按照建议here 不 我在 logcat 中收到错误 7 02 23 35 15 830 E ActivityThread 10442 Activity com abc xyz
  • 如何在nativescript中使用原生android小部件类型定义?

    我通过添加安装了平台定义 tns platform declarations 2 5 2 但是 当我使用中的定义时tns platform declarations android d ts我无法访问 API 的某些部分 例如 我无法访问a
  • Python数字格式化[重复]

    这个问题在这里已经有答案了 可能的重复 字符串格式选项 优点和缺点 有什么区别 2f x and 2f format x 我对应该使用哪种方法以及哪个版本的 Python 有点困惑 一般来说 您想使用第二种形式 format 它是较新的 另
  • 如何获取 S3 存储桶中所有不同前缀的列表?

    如果我有如下目录结构并且前缀是 folder1 folder1 folder11 folder12 folder13 files folder21 folder22 folder23 files folder31 folder32 file