AWS Lambda:如何在S3存储桶中读取CSV文件,然后将其上传到另一个S3存储桶?

莎拉

我正在做一个项目,在该项目中,我从S3存储桶中读取文件并删除所有NA值,然后将它们上传到其他S3存储桶中。我一直在看Lambda教程和示例代码,但是我很难理解它是如何工作的。
我的目标是读取S3存储桶中的任何文件,并使用Lambda函数,删除所有NA值,然后将它们上传到其他S3存储桶。但是我真的不明白发生了什么。我阅读了文档,但对我的理解不是很有帮助。
如何使以下代码从S3存储桶中读取CSV文件,然后删除所有NA值,然后将它们上传到新的S3存储桶中?

import json
import os
import boto3
import csv

def lambda_handler(event, context):
    
    for record in event['Records']:
        
        bucket = record['s3']['bucket']['name']
        file_key = record['s3']['object']['key']
        s3 = boto3.client('s3')
        
        csv_file = s3.get_object(Bucket=bucket, Key=file_key)
        csv_content = csv_file['Body'].read().split(b'\n')
        
        csv_data = csv.DictReader(csv_content)

任何链接到文档,或视频和建议,将不胜感激。

萨姆托德勒

上载档案

def upload_file(file_name, bucket, object_name=None):
    """Upload a file to an S3 bucket

    :param file_name: File to upload
    :param bucket: Bucket to upload to
    :param object_name: S3 object name. If not specified then file_name is used
    :return: True if file was uploaded, else False
    """

    # If S3 object_name was not specified, use file_name
    if object_name is None:
        object_name = file_name

    # Upload the file
    s3_client = boto3.client('s3')
    try:
        response = s3_client.upload_file(file_name, bucket, object_name)
    except ClientError as e:
        logging.error(e)
        return False
    return True

s3下载文件

import boto3
s3 = boto3.resource('s3')
s3.meta.client.download_file('mybucket', 'hello.txt', '/tmp/hello.txt')

现在,您只需以所需的任何方式处理这些csv文件,然后以高效的方式处理和上传到s3,这将是完全不同的主题。

这篇文章中有很多答案。如何使用boto将文件上传到S3存储桶中的目录

如果好奇,您也可以选中此复选框,以了解如何处理较大的文件。

步骤4:创建用于拆分输入数据的Lambda函数

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用AWS Lambda将文件从一个s3存储桶移动到AWS中的另一个存储桶

如何从AWS Lambda的s3存储桶中读取csv文件?

如何从另一个AWS帐户访问公共S3存储桶?

Python 中的 AWS Lambda 将新文件复制到另一个 s3 存储桶

使用Node将文件从一个AWS S3存储桶复制到另一个存储桶

如何使用AWS Lambda将S3对象备份到另一个帐户的存储桶中?

Shell 脚本 - 如何将最后修改的 AWS S3 对象从一个存储桶复制到另一个存储桶?

如何使用 AWS CLI 根据创建时间将 s3 对象从一个存储桶移动到另一个存储桶

如何使用承担角色将另一个AWS账户中的S3对象放入您自己的账户S3存储桶中?

获取AWS Glue写入另一个AWS账户中的S3存储桶

如何将文件(从 aws s3 存储桶复制)附加到 Linux 中的另一个文件,

AWS s3重定向到另一个s3存储桶

如何使用 Lambda 将文件从一个文件夹移动到同一 AWS S3 存储桶中的另一个文件夹?

将文件从 s3 存储桶复制到另一个 AWS 账户

如何将文件上传到AWS S3存储桶?

如何使用Java Apache HttpClient将文件上传到公共AWS S3存储桶

如何在 AWS S3 存储桶中搜索?

如何使用AWS CDK中的自定义资源将文件上传到S3存储桶

AWS S3 复制 - 一个源存储桶到多个目标存储桶

将屏幕快照从AWS lambda上传到s3存储桶失败

如何利用Shell脚本和AWS CLI每天自动将文件从一个S3存储桶复制到另一个存储桶?

AWS:使用 lambda 函数读取 Amazon S3 存储桶中的所有文件

如何使用Android SDK在AWS S3存储桶中创建一个空文件夹?

程序文件上传到AWS S3存储桶

使用Java AWS SDK将文件夹上传到S3存储桶

AWS CodePiplene不会将文件上传到S3存储桶

更改已上传到AWS S3存储桶的多个文件的默认内容类型

将多个文件上传到AWS S3存储桶,而不会覆盖现有对象

aws-将字符串作为文件上传到S3存储桶