[英]Download files from external s3 bucket using lambda
我想使用 lambda 从外部 s3 帐户下载备份文件。 我有访问密钥 ID、秘密访问密钥、存储桶名称和区域名称。 然后将它与我的私人 s3 存储桶同步。 是否可以? 如何?
看来你的要求是:
Account-A
获取存储在Bucket-A
中的数据Account-B
Bucket-B
Account-B
最简单的方法是使用CopyObject()
命令,因为它可以直接在存储桶之间(甚至在区域之间!)传输数据,而无需下载和上传。
为此,您将需要一组对Bucket-A
具有读取权限并在Bucket-B
上具有写入权限的凭据。 这可以是:
Account-A
User-A
中的 IAM User-A
可以读取Bucket-A
和存储Bucket-B
上的Bucket-B
桶策略,允许User-A
写入Bucket-B
,或Account-B
User-B
中的 IAM User-B
可以写入Bucket-B
,存储Bucket-A
上的Bucket-A
桶策略允许User-B
进行读取访问使用存储桶策略意味着一组凭据可以使用CopyObject()
命令进行读取和写入。 否则,您需要使用一组凭据下载对象,使用另一组凭据上传对象。 这不是一个聪明的方法。
请参阅: 提供对 S3 存储桶中对象的跨账户访问
运行复制命令的最简单方法是使用AWS 命令行界面 (CLI) aws s3 cp
或aws s3 sync
命令。 在您的情况下,如果您希望同步文件的内容,您可以使用aws s3 sync
。
最后一个选项是使用跨区域复制 - Amazon Simple Storage Service ,但这仅适用于不同区域的存储桶。 存储桶可以属于不同的 AWS 账户。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.