【发布时间】:2019-07-09 07:54:00
【问题描述】:
我需要编写代码 (python) 将 S3 文件从一个 S3 存储桶复制到另一个存储桶。源存储桶位于不同的 AWS 账户中,我们使用 IAM 用户凭证从该存储桶中读取数据。该代码在与目标存储桶相同的账户中运行,因此它具有 IAM 角色的写入权限。我能想到的一种方法是创建与源帐户的 s3 客户端连接,将整个文件读入内存(getObject-?),然后使用目标存储桶创建另一个 s3 客户端并写入内容(putObject-?)之前已经读入内存。但是如果文件大小增加,它会变得非常低效,所以想知道是否有更好的方法,最好是 boto3 提供一种 AWS 托管的方式来传输文件而不将内容读入内存。
PS:我无法在源帐户中添加或修改角色或策略以授予对目标帐户的直接读取权限。源帐户归其他人所有,他们只提供可以读取存储桶的用户。
【问题讨论】:
标签: python python-3.x amazon-web-services amazon-s3 boto3