Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 列出带有boto3的AWS S3文件夹_Python_Amazon S3_Directory_Boto3_Boto - Fatal编程技术网

Python 列出带有boto3的AWS S3文件夹

Python 列出带有boto3的AWS S3文件夹,python,amazon-s3,directory,boto3,boto,Python,Amazon S3,Directory,Boto3,Boto,我有收集levelOne文件夹中S3子文件夹的boto代码: import boto s3 = boto.connect_s3() bucket = s3.get_bucket("MyBucket") for level2 in bucket.list(prefix="levelOne/", delimiter="/"): print(level2.name) 请帮助发现boto3中的类似功能。代码不应该遍历所有S3对象,因为bucket有大量的对象。我认为以下内容应该是等效的:

我有收集levelOne文件夹中S3子文件夹的boto代码:

import boto

s3 = boto.connect_s3()
bucket = s3.get_bucket("MyBucket")

for level2 in bucket.list(prefix="levelOne/", delimiter="/"):
    print(level2.name)

请帮助发现boto3中的类似功能。代码不应该遍历所有S3对象,因为bucket有大量的对象。

我认为以下内容应该是等效的:

import boto3

s3 = boto3.resource('s3') 

bucket = s3.Bucket('MyBucket')

for object in bucket.objects.filter(Prefix="levelOne/", Delimiter="/"):
    print(object.key)

如果只是查找文件夹列表,则使用列出对象时返回的
CommonPrefixes
。请注意,必须指定
分隔符
,才能获得
通用前缀

导入boto3
s3\u client=boto3.client('s3'))
response=s3\u client.list\u objects\u v2(Bucket='Bucket-NAME',分隔符='/'))
对于响应中的前缀['CommonPrefixes']:
打印(前缀['prefix'][:-1])

如果您的桶有大量文件夹和对象,您可以考虑使用,它可以提供每日或每周CSV文件列出所有对象。