我需要将所有对象从一个 Amazon Simple Storage Service (S3) 存储桶移动到另一个 S3 存储桶,如何才能在我的 S3 存储桶之间迁移对象?

如要将对象从一个 S3 存储桶复制到另一个存储桶,请执行如下步骤:

1.    创建新的 S3 存储桶。

2.    安装并配置 AWS 命令行界面 (CLI)。

3.    在 S3 存储桶之间复制对象。

4.    验证对象复制已经成功.

5.    将现有的 API 调用更新为新存储桶名称。

在开始之前,请考虑优化 AWS CLI 以使用更高的并发操作,从而提高同步过程的性能。有关配置选项的更多信息请参阅 AWS CLI S3 配置。有关数据传输价格的更多信息,请参阅 Amazon S3 定价

如果您的 S3 存储桶中有许多对象 (超过 1000 万个对象),请考虑使用 Amazon S3 清单报告和使用 Amazon CloudWatch 来监控指标,以优化验证所复制对象的成本和性能。此外,您还可以按不同的前缀分拆同步命令,以优化 S3 存储桶的性能。有关工作负载性能优化的更多信息,请参阅请求速率和性能注意事项

创建新的 S3 存储桶

1.    打开 Amazon S3 控制台

2.    选择 创建存储桶

3.    为新存储桶选择一个符合 DNS 标准的名称

4.    选择 AWS 区域。
注意:最好新存储桶与源存储桶位于同一区域,避免与跨区域流量有关的性能问题。

5.    如果需要,选择从现有存储桶复制设置,以复制源存储桶的配置。

安装并配置 AWS 命令行界面 (AWS CLI)

1.    安装 AWS 命令行界面

2.    运行如下命令,配置 AWS CLI:

aws configure

3.    输入您的访问密钥 (访问密钥 ID 和秘密访问密钥)

4.    单击 Enter(确认)跳过默认区域和默认输出选项。有关区域参数的信息请参阅适用于 Amazon S3 的 AWS 区域和终端节点
注意:AWS CLI 输出为 JSON、文本或表,但并非所有命令都支持每种输出类型。如果命令输出不支持您选择的格式,则将默认采用自有的格式。更多信息请参阅控制 AWS Command Line Interface 的命令输出

在 S3 存储桶之间复制对象

1.    如果您在 Amazon Glacier 中有存档的 S3 对象,则恢复 Amazon Glacier 中存储的对象

2.    运行如下 sync 命令,在源存储桶和目标存储桶之间复制对象:

aws s3 sync s3://SOURCE_BUCKET_NAME s3://NEW_BUCKET_NAME

注意:更新命令以包含您的目标存储桶和源存储桶名称。

sync 命令使用 CopyObject API 在 S3 存储桶之间复制对象。sync 命令会列举源存储桶和目标存储桶,识别存在于源存储桶中但没有存在于目标存储桶中的对象,或者识别源存储桶中 LastModified 日期与目标存储桶中不同的对象。对于注明版本的存储桶,sync 命令仅复制对象的当前版本,而不会复制先前版本。默认设置为保存对象的元数据,但您的 AWS 账户的访问控制列表 (ACL) 设置为 FULL_CONTROL,这会删除任何额外的 ACL。如果操作失败,您可以重新运行 sync 命令,但不复制先前所复制的对象。

验证对象复制已经成功

1.    运行如下命令,验证源存储桶和目标存储桶的内容:

aws s3 ls --recursive s3://SOURCE_BUCKET_NAME --summarize > bucket-contents-source.txt 
aws s3 ls --recursive s3://NEW_BUCKET_NAME --summarize > bucket-contents-new.txt

注意:更新命令以包含您的源存储桶和目标存储桶名称。

2.    使用保存到 AWS CLI 目录中文件的输出,比较源存储桶和目标存储桶中的对象。请参阅以下示例输出:

$ aws s3 ls --recursive s3://BUCKETNAME --summarize
2017-11-20 21:17:39      15362 s3logo.png

  Total Objects: 1        Total Size: 15362

将现有的 API 调用更新为新存储桶名称

更新任何现有的应用程序或工作负载,确保它们使用新存储桶名称。如果您经常进行写入操作,您可能需要运行 sync 命令来解决源存储桶和目标存储桶之间的差异。


此页面对您有帮助吗? |

返回 AWS Support 知识中心

需要帮助?请访问 AWS 支持中心

发布时间:2018 年 1 月 23 日

更新时间:2018 年 7 月 2 日