Tee*_*Kay 5 python amazon-s3 amazon-web-services python-3.x aws-lambda
我有一个名为“Sample_Bucket”的 s3 存储桶,其中有一个名为“Sample_Folder”的文件夹。我只需要获取文件夹“Sample_Folder”中所有文件的名称。
我正在使用以下代码来这样做 -
import boto3
s3 = boto3.resource('s3', region_name='us-east-1', verify=False)
bucket = s3.Bucket('Sample_Bucket')
for files in bucket.objects.filter(Prefix='Sample_Folder):
print(files)
Run Code Online (Sandbox Code Playgroud)
变量文件包含以文件名作为关键字的对象变量。
s3.ObjectSummary(bucket_name='Sample-Bucket', key='Sample_Folder/Sample_File.txt')
Run Code Online (Sandbox Code Playgroud)
但我只需要文件名。我如何提取它?或者有其他方法可以做到吗?
小智 6
干得好。
import boto3
bucket = "Sample_Bucket"
folder = "Sample_Folder"
s3 = boto3.resource("s3")
s3_bucket = s3.Bucket(bucket)
files_in_s3 = [f.key.split(folder + "/")[1] for f in s3_bucket.objects.filter(Prefix=folder).all()]
Run Code Online (Sandbox Code Playgroud)
您应该使用 list_object_v2 它为您提供所使用的定义前缀的列表。
... snippet ...
filenames = []
def get_filenames(s3):
result = s3.list_objects_v2(Bucket=bucket, Prefix=prefix)
for item in result['Contents']:
files = item['Key']
print("file: ", files)
filenames.append(files) #optional if you have more filefolders to got through.
return filenames
get_filenames(my_bucketfolder)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11499 次 |
| 最近记录: |