你能列出S3存储桶中的所有文件夹吗?

2024-03-28 10:24:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个包含许多文件夹的存储桶每个文件夹包含许多图像。是否可以列出所有文件夹,而不必遍历存储桶中的所有键(文件夹和图像)。我用的是Python和boto。


Tags: 图像文件夹boto
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中没有所谓的“文件夹”。你只有桶和东西。

这些对象表示文件。当你命名一个文件:name-of-folder/name-of-file时,它看起来就像是一个文件:name-of-file,位于文件夹:name-of-folder中,但实际上并没有“文件夹”这样的东西。

您还可以使用AWS CLI(命令行界面):
命令s3ls <bucket-name>将只列出bucket第一级中的“文件夹”。

是的!可以使用键的前缀和分隔符列出。请参阅以下文档。

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

相关问题 更多 >