我有一个包含多个文件夹的存储桶,每个文件夹包含许多图像。是否可以列出所有文件夹而无需遍历存储桶中的所有密钥(文件夹和图像)。我使用Python和boto。
答案 0 :(得分:2)
您可以使用list()一个空前缀(第一个参数)和一个文件夹分隔符(第二个参数)来实现您的要求:
s3conn = boto.connect_s3(access_key, secret_key, security_token=token)
bucket = s3conn.get_bucket(bucket_name)
folders = bucket.list('', '/')
for folder in folders:
print folder.name
<强>注:强>
在S3中没有&#34;文件夹&#34;。你所拥有的只是水桶和物体。
对象代表文件。当您为文件命名时,name-of-folder/name-of-file
它看起来就像是一个文件:name-of-file
,它位于文件夹中:name-of-folder
- 但实际上没有这样的东西作为&#34;文件夹&#34;。
您还可以使用AWS CLI(命令行界面):
命令s3ls <bucket-name>
将仅列出&#34;文件夹&#34;在第一级别。
答案 1 :(得分:-1)
是的!您可以使用键的前缀和分隔符列出。请查看以下文档。
的 http://docs.aws.amazon.com/AmazonS3/latest/dev/ListingKeysHierarchy.html 强>