拷贝对象即复制Bucket中的文件。在有些情况下,您可能仅需要将一些Object从一个Bucket复制到另外一个Bucket,不改变内容。这种情况一般是将Object重新下载然后上传,但这种做法会浪费很多网络带宽。为此,OSS提供了CopyObject的功能来实现OSS的内部拷贝,这样在用户和OSS之间就无需传输大量的数据。

另外,由于OSS不提供重命名功能,如果需要对Object进行重命名,建议您调用OSS的CopyObject接口先将原来的数据拷贝成新的文件名,然后删除源Object。如果您仅需要修改某个Object的一些Object Meta信息,同样可以调用CopyObject接口,将源Object和目标Object设置成相同的地址,这样OSS就会仅更新Object Meta信息。Object Meta信息可以参考Object Meta

CopyObject操作有以注意事项:

  • 您需要有源Object的操作权限,否则会无法完成操作。
  • 不支持跨Region拷贝数据。比如:不支持将杭州Bucket里的Object拷贝到青岛。
  • 支持的最大Object大小为1GB。
  • 不能对追加上传产生的Object进行拷贝。

功能使用参考:

拷贝大文件

当Object很大的时候,需要采用断点续传上传方法来完成拷贝。

基本操作步骤和断点续传上传基本一致,唯一需要注意的是将UploadPart替换成UploadPartCopy

UploadPartCopy的语义和UploadPart基本一致,只是数据源从HTTP请求直接上传改成从源Object中获取。

功能使用参考: