首页 > 解决方案 > 创建一个 CSV 文件并将其从 lambda 函数上传到 AWS S3 存储桶

问题描述

我在 AWS s3 存储桶中有一个 CSV 文件。当 CSV 文件到达 Lambda 函数时,该函数被触发。我想要做的是,我想从 CSV 文件中删除一些特殊字符,然后再次将其存储到另一个 S3 存储桶中。

在我的 Lambda 函数中,我可以从 S3 存储桶接收文件,并可以从 S3 对象内容中读取文件。

S3Object s3Object = this.s3Client.getObject(new GetObjectRequest(srcBucket, srcKey));
InputStream objectData = s3Object.getObjectContent();   
BufferedReader reader = new BufferedReader(new InputStreamReader(objectData));
    String line = null;
    while ((line = reader.readLine()) != null) {
        if(line.contains("\"")) {
            String newLine= line.replace("\"", "");
        }
    }

删除字符后,如何写入文件并将文件存储到另一个 S3 存储桶中?

标签: javaamazon-s3aws-lambda

解决方案


在 AWS Lambda 函数中操作 Amazon S3 文件的最简单方法是:

  • 将文件从 S3 复制到本地/tmp
  • 操作/编辑文件
  • 将文件上传到 S3

相关命令为:

  • GetObject()
  • PutObject

例如:

s3client.putObject(new PutObjectRequest(bucketName, key, 
        new File("C:\\Users\\user\\Desktop\\testvideo.mp4")));

推荐阅读