Python Boto3获取S3桶的内容
我正在尝试获取bucket子文件夹中的文件列表。一切正常,除了当我试图解析文件时,我注意到代码提取的第一个键是子文件夹名称。有没有办法将子文件夹名称作为键省略Python Boto3获取S3桶的内容,python,amazon-s3,boto3,Python,Amazon S3,Boto3,我正在尝试获取bucket子文件夹中的文件列表。一切正常,除了当我试图解析文件时,我注意到代码提取的第一个键是子文件夹名称。有没有办法将子文件夹名称作为键省略 s3 = session.resource('s3') bucket = s3.Bucket('bucket_name') for obj in bucket.objects.filter(Prefix="sub1"): key = obj.key print(key) 打印键的结果 sub1/ sub1/file1
s3 = session.resource('s3')
bucket = s3.Bucket('bucket_name')
for obj in bucket.objects.filter(Prefix="sub1"):
key = obj.key
print(key)
打印键的结果
sub1/
sub1/file1
sub1/file2
.
.
我可以想象在django这样的集合中有一个
.exclude
,但我无法将其视为一个选项。你可以试试这样的
s3 = session.resource('s3')
bucket = s3.Bucket('bucket_name')
prefix = "sub1/"
data = [obj for obj in list(bucket.objects.filter(Prefix=prefix)) if obj.key != prefix]
for obj in data:
print(obj.key)
重要提示:不要假设此值始终存在。它是在控制台或使用某些第三方工具(如s3fs)显式创建文件夹的产物。如果从API创建
my/example/object.txt
,但从未直接创建过“my”或“example”文件夹,则这些文件夹仍将显示在控制台中,但列表对象API不会返回my/
和my/example/
。