拷贝文件是指在不改变文件内容的情况下,将某个存储空间(Bucket)内的一些文件(Object)复制到另外一个 Bucket 中。

之前,拷贝文件通常是将 Object 重新下载然后上传,但这种做法会浪费很多网络带宽。为此,OSS 提供了 CopyObject 的功能来实现 OSS 的内部拷贝,这样在用户和 OSS 之间就无需传输大量的数据。

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

操作方式

操作方式 说明
图形化工具ossbrowser 图形化工具,易操作
注意 仅可以用于拷贝 5GB 以下的文件。
命令行工具ossutil 命令行工具,性能好
Java SDK 丰富、完整的各类语言 SDK demo
Python SDK
PHP SDK
Go SDK
C SDK
.NET SDK
Node.js SDK
Browser.js SDK
Ruby SDK

注意事项

拷贝文件时,有以下注意事项:

  • 您需要有源 Object 的操作权限,否则会无法完成操作。
  • 不支持跨 Region 拷贝数据。比如,不支持将杭州 Bucket 里的 Object 拷贝到青岛的 Bucket 中。
  • 不能对追加上传产生的 Object 进行拷贝。
  • 1GB 以下的文件使用简单拷贝,OSS API 接口为 CopyObject
  • 1GB 以上的文件使用分片拷贝,OSS API 接口为 UploadPartCopy