我在 AWS S3 存储桶中存储了大量文件。我需要将这些文件移至另一个用户拥有的、位于不同区域的另一个 S3 存储桶中。这些文件存储在我的 S3 存储桶中的不同位置 - 这些密钥(例如location1
& location2
)也需要转移。这两个 S3 存储桶都与 AWS EC2 Ubuntu 服务器相关联。以下是我的 S3 存储桶结构的示例:
s3://mybucket/location1/some_file
s3://mybucket/location1/some_file2
s3://mybucket/location2/some_file
etc...
考虑到这些限制,将文件从 S3 传输到 S3 的哪种方法最有效?
答案1
https://aws.amazon.com/premiumsupport/knowledge-center/account-transfer-s3/
您可以使用 S3 COPY 操作将 Amazon S3 对象从一个 AWS 账户复制到另一个 AWS 账户。您必须使用 Amazon S3 访问控制列表 (ACL) 或存储桶策略授予目标 AWS 账户对源 AWS 账户资源的访问权限。
设置跨账户 IAM 权限后,一切就和aws s3 sync s3://sourcebucket s3://destinationbucket
通过 CLI 一样简单。无需中间服务器 - 一切都直接在 S3 上进行(因此速度会大大加快)。
(如果您不想要整个存储桶,CLI 也可以轻松复制单个对象)
答案2
您可以实现以下场景:
- 在源区域或目标区域部署临时 EC2 实例。您选择的实例越大,获得的性能越好。
- 在此实例上安装 S3 客户端并传输您的文件。
- 操作完成后,终止您的 EC2 实例。