我目前的计划是将 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 区域,同时保持相同的存储桶名称?
答案1
你不能。更糟糕的是,你也无法重命名存储桶,而且可能需要长达 24 小时才能重新使用旧存储桶名称。
除了运行 AWS CLI 命令之外,您还可以设置跨区域复制在存储桶之间。将所有内容放入 us-west-2 存储桶中,开始临时使用该存储桶。删除 us-east-1 存储桶,等待 24 小时,在 us-west-2 中重新创建存储桶,然后使用同区域复制将所有内容放入新存储桶中。
这消除了本地 CLI 会话中断导致复制停止的可能性,并使存储桶始终保持最新状态,直到您删除旧存储桶。我建议快速查看一下设置此项所涉及的成本。