首页 > 解决方案 > Lambda函数在上传时将文件一个s3复制到另一个s3

问题描述

如何将带有 csv 的文件复制到另一个存储桶中

我在 AWS 中有 3 个存储桶 a)test b)testjson c)testcsv

我已经上传 data.json 和 data.csv 到测试桶

上传文件后发生以下事情

  1. data.json 文件被复制到 testjson 存储桶

  2. data.csv 文件被复制到 testcsv 存储桶

数据.json

{
"emp_id": "3",
"Name" : "Madk"
"Company": "FB"
}

数据.csv

emp_id,Name,Company
3,Madk,FB 

在这个 lambda 处理程序中,我只需要将 .json 复制到另一个存储桶中,并将 .csv 复制到另一个存储桶中

标签: pythonaws-lambda

解决方案


如果你想

创建已存储在 Amazon S3 中的对象的副本。

那么copy_object是进入boto3的方式。

示例代码

import boto3

bucket_from = "test"
bucket_to_json = "testjson"
bucket_to_csv = "testcsv"

s3 = boto3.resource('s3')

name = 'data.json'

s3.meta.client.copy_object(
    Bucket=bucket_to_json,
    CopySource={'Bucket': bucket_from, 'Key': name},
    Key=name
)

name = 'data.csv'

s3.meta.client.copy_object(
    Bucket=bucket_to_csv,
    CopySource={'Bucket': bucket_from, 'Key': name},
    Key=name
)

推荐阅读