如何使用 Lambda 函数从我的系统获取文件并将其上传到 S3

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

我正在尝试从我的系统获取一个文件并将其上传到具有 lambda 函数的 S3 存储桶。我希望 lambda 函数每小时获取该文件,并在接下来的一小时内获取生成的下一个文件(我生成 1 个文件/小时)

我在每小时获取文件而不是上传同一文件两次时遇到了一些麻烦。将文件上传到 S3 并不是什么大事

python amazon-web-services amazon-s3 aws-lambda
1个回答
0
投票

要实现每小时从系统获取一个文件并使用 AWS Lambda 将其上传到 S3 存储桶的目标,您可以按照以下常规步骤操作:

  1. 在您的 Lambda 函数中,实现从系统中获取文件的逻辑。您需要确保每小时获取正确的文件,而不是将同一文件上传两次。

  2. 获取文件后,使用适用于您所选编程语言的 AWS 开发工具包将其上传到所需的 S3 存储桶。

以下是如何实现此逻辑的 Python 示例:

import boto3
import os
import datetime

# Initialize S3 client
s3 = boto3.client('s3')

def lambda_handler(event, context):
    # Get the current hour
    current_hour = datetime.datetime.now().strftime('%Y-%m-%d-%H')

    # Construct the filename based on the current hour
    file_name = f"file_{current_hour}.txt"  # Adjust the filename pattern as needed

    # Check if the file exists locally
    if os.path.exists(file_name):
        # Upload the file to S3 bucket
        s3.upload_file(file_name, 'your-s3-bucket-name', file_name)
        print(f"Uploaded {file_name} to S3 bucket.")
    else:
        print(f"File {file_name} not found.")

    return {
        'statusCode': 200,
        'body': 'File upload complete.'
    }
© www.soinside.com 2019 - 2024. All rights reserved.