微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何通过 AWS Lambda 函数复制到达 Amazon S3 的对象

如何解决如何通过 AWS Lambda 函数复制到达 Amazon S3 的对象

我想将几个前缀复制到另一个存储桶中。

我不想使用同步和复制服务。我只想使用 lambda 执行此操作,并且我正在运行持续迁移,因此数据每 20 分钟传入一次,无需转换。

有人可以帮助我如何使用 AWS Lambda 进行同步和复制吗?

解决方法

您可以为 AWS Lambda 函数配置触发器,以便在将对象添加到 Amazon S3 存储桶时调用它。该函数将接收有关触发该函数的对象的信息,包括其 Bucket 和 Key。

您应该编写 Lambda 函数以调用 CopyObject() 以将该对象复制到所需的目标存储桶。这是 Python 中的一个示例:

import boto3
import urllib

def lambda_handler(event,context):
    
    TARGET_BUCKET = 'my-target-bucket'

    # Get the bucket and object key from the Event
    bucket = event['Records'][0]['s3']['bucket']['name']
    key = urllib.parse.unquote_plus(event['Records'][0]['s3']['object']['key'])
    
    # Copy object
    s3_client = boto3.client('s3')
    s3_client.copy_object(
        Bucket = TARGET_BUCKET,Key = key,CopySource= {'Bucket': bucket,'Key': key}
    )

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。