我当前的计划是将 S3 存储桶从 AWS 区域移动us-west-1
到 AWS 区域us-west-2
,同时保留相同的存储桶名称,这似乎效率非常低,因为它会将整个存储桶复制两次:
# Create new bucket in us-west-2
aws s3 mb s3://temp-bucket --region us-west-2
# Copy files from old to new bucket in us-west-2
aws s3 sync s3://my-bucket s3://temp-bucket --source-region us-west-1 --region us-west-2
# Delete the old bucket in us-west-1
aws s3 rb --force s3://my-bucket
# Create new bucket in us-west-2
aws s3 mb s3://my-bucket --region us-west-2
# Copy files from old to new bucket
aws s3 sync s3://temp-bucket s3://new-bucket
如何有效地将 S3 存储桶移动到新的 AWS 区域,同时保持相同的存储桶名称?
你不能。雪上加霜的是,您还无法重命名存储桶,并且可能需要长达 24 小时才能重新使用旧存储桶名称。
除了运行 AWS CLI 命令之外,还有一个小小的替代方案,您可以在存储桶之间设置跨区域复制。将所有内容放入 us-west-2 存储桶中,开始临时使用它。删除 us-east-1 存储桶,等待 24 小时,在 us-west-2 中重新创建存储桶,并使用同区域复制将其全部放入新存储桶中。
这消除了本地 CLI 会话中断而停止复制的可能性,并使存储桶不断保持最新状态,直到您删除旧存储桶。我建议快速查看一下设置此项目所需的成本。
一种替代方法是使用 AWS 控制台启动文件传输:
仍然需要创建两次新的存储桶,但复制速度相当快:
请注意,在不同 AWS 区域之间移动数据会产生费用。