我在 S3 存储桶中上传了多个文件,我想通过 lamda python 在列表中打印输出中的文件名称。
假设我有文件 S1、S2、S3 ...等等,我希望输出为 ['S1','S2','S3'..] 用于 S3 中上传的所有文件。
我尝试过如下代码,但无法按预期打印输出:-
import boto3
import json
from datetime import datetime as dt
client = boto3.resource('s3')
s3_client = boto3.client('s3')
def lambda_handler(event, context):
paginator = s3_client.get_paginator('list_objects')
# Create a PageIterator from the Paginator
page_iterator = paginator.paginate(Bucket='mylocals3bucketpoc')
for page in page_iterator:
vars = []
for Contents in page['Contents']:
print(Contents['Key'])
输出:-
S1
S2
S3
因为我想要像
['S1','S2','S3']
这样的输出,我正在尝试使用列表附加,但无法获得所需的输出。
请帮我解决同样的问题。
您可以创建一个列表并将您的名字附加到其中。
import boto3
import json
from datetime import datetime as dt
client = boto3.resource('s3')
s3_client = boto3.client('s3')
def lambda_handler(event, context):
paginator = s3_client.get_paginator('list_objects')
page_iterator = paginator.paginate(Bucket='mylocals3bucketpoc')
file_list = []
for page in page_iterator:
for Contents in page['Contents']:
file_list.append(Contents['Key'])
print(file_list)