您可以列出 S3 存储桶中的所有文件夹吗?

问题描述 投票:0回答:2

我有一个包含多个文件夹的存储桶,每个文件夹包含多个图像。是否可以列出所有文件夹,而无需迭代存储桶中的所有键(文件夹和图像)。我正在使用 Python 和 boto。

python amazon-s3 boto
2个回答
8
投票

您可以使用带有空前缀(第一个参数)和文件夹分隔符(第二个参数)的 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 中没有“文件夹”这样的东西。你拥有的只是水桶和物体。

对象代表文件。当您命名文件:

name-of-folder/name-of-file
时,它看起来就像是一个文件:
name-of-file
,驻留在文件夹:
name-of-folder
中 - 但实际上不存在“文件夹”这样的东西。

您还可以使用 AWS CLI(命令行界面):
命令

s3 ls <bucket-name>
将仅列出存储桶第一级中的“文件夹”。


-2
投票

是的!您可以使用键的前缀和分隔符来列出。请查看以下文档。

    http://docs.aws.amazon.com/AmazonS3/latest/dev/ListingKeysHierarchy.html

© www.soinside.com 2019 - 2024. All rights reserved.