我是AWS新手,正在尝试同步2个s3存储桶
这是到原始桶的链接 https://s3-us-west-2.amazonaws.com/css490/input.txt
原始s3存储桶是公共的,但不是来自我的帐户 第二个也是公共的,但是是我帐户中的s3
我正在使用右上角的测试按钮,它显示成功,但program-4(接收桶)仍然为空
(可能是因为我正在使用测试按钮,但我不知道)
另外,在HTML中如何调用此函数
评论回复:
xy问题 我之所以同步它们,是因为我需要将数据从其他人的s3存储桶复制到我的s3存储桶
注意:我每次都需要覆盖数据(即使文件存在)
另一个链接可能会有所帮助,但它也没有答案 (顺便说一句,我也问了这个问题)
import json
import boto3
import os
import subprocess
def lambda_handler(event, context):
# link the 2 s3 buckets
subprocess(['aws', 's3', 'sync', 's3://css490', 's3://program-4'])
#arn:aws:s3:::program-4
return {
'statusCode': 200
}
如果您只想复制,请尝试以下操作:
aws s3 cp recursive s3://SOURCE_BUCKET_NAME s3://SOURCE_BUCKET_NAME
默认情况下,Lambda环境中未安装AWS CLI
见:How to use AWS CLI within a Lambda function (aws s3 sync from Lambda) :: Ilya Bezdelev
此外,您应该使用
subprocess.run()
来运行子流程。我很惊讶您在控制台中没有看到关于这些问题的错误虽然您可以将AWS CLI打包为Lambda函数,但我建议您只需自己执行这些函数:
ListBucket()
列出源bucketCopyObject()
将每个对象复制到目标bucket相关问题 更多 >
编程相关推荐