从 S3 获取多个文件名并附加到列表中以在输出中打印相同的文件名

问题描述 投票:0回答:1

我在 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']
这样的输出,我正在尝试使用列表附加,但无法获得所需的输出。 请帮我解决同样的问题。

python-3.x amazon-s3 aws-lambda
1个回答
0
投票

您可以创建一个列表并将您的名字附加到其中。

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)
© www.soinside.com 2019 - 2024. All rights reserved.