python - 如何使用 boto3 获取 S3 存储桶中的顶级文件夹?
问题描述
我有一个 S3 存储桶,其中包含几个顶级文件夹,每个文件夹中有数百个文件。如何获取这些顶级文件夹的名称?
我尝试了以下方法:
s3 = boto3.resource('s3', region_name='us-west-2', endpoint_url='https://s3.us-west-2.amazonaws.com')
bucket = s3.Bucket('XXX')
for obj in bucket.objects.filter(Prefix='', Delimiter='/'):
print obj.key
但这似乎不起作用。我曾考虑使用正则表达式来过滤所有文件夹名称,但这似乎没有时间效率。
提前致谢!
解决方案
尝试这个。
import boto3
client = boto3.client('s3')
paginator = client.get_paginator('list_objects')
result = paginator.paginate(Bucket='my-bucket', Delimiter='/')
for prefix in result.search('CommonPrefixes'):
print(prefix.get('Prefix'))
推荐阅读
- rxjs - ngrx/rxjs:这个代码可以先检查商店然后改进API请求吗?
- reactjs - 将 TypeScript 与 React HOC、React.lazy 和 forwarRef 一起使用
- python - 如何计算授权码的c_hash?
- python - jupyter notebook,docker image 询问令牌
- sql - 如何将 LAG 函数与 WHERE 子句结合使用?
- amazon-web-services - 有没有办法避免向 AWS S3 发送连续请求?
- deep-learning - 基于 BERT 的 CNN - 卷积和 Maxpooling
- java - 如何在内部存储中创建文件夹?
- android - 如何使用 React Native 将下载请求委托给另一个应用程序
- reactjs - React hooks 如何搜索数组子数组