复制对象
复制操作将创建已存储在 Amazon S3 中的数据元的副本。在单个原子操作中,您可以创建最大 5 GB 的对象副本。但是,对于复制大于 5 GB 的对象,您必须使用分段上传
API。通过使用 copy
操作,您可以:
-
创建对象的其他副本
-
通过复制对象并删除原始对象来重命名它们。
-
跨不同的 Amazon S3 位置(例如,us-west-1 和欧洲)移动对象
-
更改对象元数据
每个 Amazon S3 对象都有元数据。它是一组名称值对。您可以在上传对象元数据时对其进行设置。上传对象后,您将无法修改对象元数据。修改对象元数据的唯一方式是创建对象的副本并设置元数据。在复制操作中,设置与源和目标相同的对象。
每个对象都带有元数据。有些是系统元数据,而另外一些则是用户定义的元数据。用户可以控制某些系统元数据,例如,用于对象的存储类配置和配置服务器端加密。复制对象时,还会复制用户控制的系统元数据和用户定义的元数据。Amazon S3 将重置系统控制的元数据。例如,在复制对象时,Amazon S3 将重置已复制对象的创建日期。在复制请求中,您无需设置这些值。
复制对象时,您可能会决定更新某些元数据值。例如,如果您的源对象被配置为使用标准存储,您可能会为对象复制选择低冗余存储。您可能还会决定更改源对象上某些用户定义的元数据值。请注意,如果您选择在复制期间更新任意对象的用户可配置元数据 (系统或用户定义的元数据),则必须显式指定请求中源对象上存在的所有用户可配置的元数据,即使您只更改其中一个元数据值也是如此。
有关对象元数据的详细信息,请参阅 对象键和元数据。
-
复制不同位置上的对象将产生带宽费用。
-
如果源对象存档在
S3 Glacier
或S3 Glacier Deep Archive
中,您必须先还原临时副本,然后才能将对象复制到另一个存储桶中。有关对象存档的更多信息,请参阅转换为 S3 Glacier 和 S3 Glacier Deep Archive 存储类(对象存档)。
在复制对象时,您可以请求 Amazon S3 保存使用 AWS Key Management Service (AWS KMS) 客户主密钥 (CMK)、Amazon S3 托管加密密钥或客户提供的加密密钥进行加密的目标对象。因此,您必须在请求中指定加密信息。如果复制源是通过客户提供的密钥使用服务器端加密存储在 Amazon S3 中的对象,则您需要在请求中提供加密信息,以便 Amazon S3 可以解密对象进行复制。有关更多信息,请参阅 使用加密保护数据。
要使用单个请求复制多个 Amazon S3 对象,您可以使用 Amazon S3 批处理操作。您为 S3 批处理操作提供要操作的对象列表。S3 批处理操作调用相应的 API 来执行指定的操作。单个 S3 批处理操作作业可对包含 EB 级数据的数十亿个对象执行指定操作。
S3 批处理操作可跟踪进度、发送通知并存储所有操作的详细完成报告,从而提供完全托管的、可审核的无服务器体验。您可以通过 AWS 管理控制台、AWS CLI、AWS 开发工具包或 REST API 使用 S3 批处理操作。有关更多信息,请参阅 S3 批处理操作基础知识。