更新时间:2023-07-07 GMT+08:00

复制对象

使用场景

用户可以根据需要将存储在OBS上的对象复制到其他路径下。复制对象操作将创建需要复制的对象的副本。在单次操作中,您可以创建最大5GB的对象副本。对于复制大于5GB的对象副本,请您使用多段上传API。通过使用copy操作,您可以:

  • 创建对象的其他副本。
  • 通过复制对象并删除原始对象来重命名它们。
  • 更改对象元数据。每个OBS对象都带有元数据,它是一组名称值对,您可以在上传对象时对其进行设置。上传对象后,您可以通过接口修改元数据,详情请参见修改对象元数据。也可以创建对象的副本并设置元数据,在复制操作中,设置与源和目标相同的对象。

    每个对象都带有元数据。有些是系统元数据,而另外一些则是用户定义的元数据。用户可以控制某些系统元数据。复制对象时,还会复制用户控制的系统元数据和用户定义的元数据。OBS将重设系统控制的元数据。例如,在复制对象时,OBS将重设已复制的对象的创建日期。在复制请求中,您无需设置这些值。

    复制对象时,您可能会决定更新某些元数据值。例如,如果您的源对象被配置为使用标准存储,您可能会为对象复制选择低频访问存储。您可能还会决定更改源对象上某些用户定义的元数据值。请注意,如果您选择在复制期间更新任意对象的用户可配置元数据(系统或用户定义的),则您必须显式地指定所有的用户可配置元数据,即使您只更改一个元数据的值(显示在请求中源对象上)。

如果您想将对象自动复制到其他区域,可以创建跨区域复制规则,以满足异地容灾等需求,详情请参见跨区域复制

  • OBS帮助您将存储于华为云对象存储的业务数据复制到指定Region,但华为云并不感知您的数据的具体内容,也不对您使用本服务的合法合规性负责。如果您的复制涉及跨境传输,请确保您使用本服务符合法律法规的要求。
  • 在桶没有开启多版本的情况下,将源对象objecta复制为目标对象objectb,如果在复制操作之前对象objectb已经存在,复制操作执行之后老对象objectb则会被新复制对象objectb覆盖,复制成功后,只能下载到新的对象objectb,老对象objectb将会被删除。因此在使用copy接口时请确保目标对象不存在或者已无价值,避免因copy导致数据误删除。复制过程中源对象objecta无任何变化。
  • 复制对象的结果不能仅根据HTTP返回头域中的status_code来判断请求是否成功,头域中status_code返回200时表示服务端已经收到请求,且开始处理复制对象请求。复制是否成功会在响应消息的body中,只有body体中有ETag标签才表示成功,否则表示复制失败。

使用方式

OBS支持通过API、SDK、OBS Browser+、obsutil方式复制对象。

支持的使用方式

参考文档

SDK

OBS支持多种语言SDK,请从SDK概述页面选择进入对应的开发指南查阅。

API

复制对象

OBS Browser+

复制文件或文件夹

obsutil

复制对象