CopyObject
拷贝同一地域下相同或不同存储空间(Bucket)之间的文件(Object)
服务地址:
华东1 金融云
输入参数
只看必填
bucketBucket名称
keyObject完整路径
x-oss-copy-source指定拷贝的源地址
x-oss-forbid-overwrite指定CopyObject操作时是否覆盖...
x-oss-copy-source-if-match如果源Object的ETag值和您提供...
x-oss-copy-source-if-none-match如果源Object的ETag值和您提供...
x-oss-copy-source-if-unmodified-since如果指定的时间等于或者晚于文件实际修改时间
x-oss-copy-source-if-modified-since如果源Object在用户指定的时间以后...
x-oss-metadata-directive指定如何设置目标Object的元信息
x-oss-server-side-encryption指定OSS创建目标Object时
x-oss-server-side-data-encryption指定Object的加密算法
x-oss-server-side-encryption-key-id表示KMS托管的用户主密钥
x-oss-object-acl指定OSS创建Object时的访问权限
x-oss-storage-classBucket的存储类型
x-oss-tagging指定Object的对象标签
x-oss-tagging-directive指定如何设置目标Object的对象标签
x-oss-meta-*如果配置以x-oss-meta-*为前...
:
插件下载了解更多
VS Code 插件
安装插件之前,确保已安装 VS Code安装插件之前,确保已安装 VS Code
Alibaba Cloud Developer Toolkit is a collection of extensions that can help access Alibaba Cloud services in Visual Studio Code.
JetBrains 插件
安装插件之前,确保已安装 JetBrains IDE安装插件之前,确保已安装 JetBrains IDE
The Alibaba Cloud Developer Toolkit for JetBrains makes it easier to access Alibaba Cloud services.

接口说明

版本控制

  • x-oss-copy-source默认拷贝 Object 的当前版本,您可以在 x-oss-copy-source 中加入 versionId 来拷贝指定的 Object 版本。拷贝 Object 时,如果源 Object 的对应版本为删除标记,则返回 404 表示该 Object 不存在。
  • 如果需要恢复 Object 的早期版本为当前版本,您只需将 Object 的早期版本拷贝到同一个 Bucket 中,OSS 会将该 Object 对应早期版本置为当前版本。
  • 如果目标 Bucket 已开启版本控制,OSS 将会为新拷贝的 Object 自动生成唯一的版本 ID,此版本 ID 将会在响应 Header 中的 x-oss-version-id 返回。如果目标 Bucket 未开启或者暂停了版本控制,OSS 将会为新拷贝的 Object 自动生成 version ID 为 null 的版本,且会覆盖原有 versionId 为 null 的版本。

使用限制

  • 使用 CopyObject 接口时,Object 的大小限制说明如下:

    • 如果源 Bucket 和目标 Bucket 相同,则 Object 的大小无限制。

    • 如果源 Bucket 和目标 Bucket 不同,则建议拷贝小于 1 GB 的 Object。当您需要拷贝大于 1 GB 的 Object 时,请使用 UploadPartCopy 接口。

    使用 CopyObject 或 UploadPartCopy 接口均要求对源 Object 有读权限。

  • 在非版本控制的 Bucket 中,当调用 CopyObject 接口拷贝文件时,如果源 Object 与目标 Object 为同一个 Object,则 OSS 只修改源 Object 的元数据,不拷贝源 Object 的内容。

  • 在版本控制的 Bucket 中,不支持拷贝通过追加上传方式生成的 Object。

  • 如果源 Object 为软链接,则只拷贝软链接,无法拷贝软链接指向的文件内容。

计量计费

  • 调用一次 CopyObject 接口会对源 Object 和目标 Object 所在的 Bucket 各增加一次 Get 请求次数。
  • 调用 CopyObject 接口会对目标 Object 所在的 Bucket 增加相应的存储量。
  • 调用 CopyObject 接口更改 Object 存储类型会涉及数据覆盖。例如低频访问 IA 创建后 10 天内被覆盖为标准存储 Standard,则会产生 20 天的低频访问不足规定时长容量费用。关于存储费用的更多信息,请参见**存储费用**。

请求语法

PUT /{key} HTTP/1.1
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
x-oss-copy-source: string
x-oss-forbid-overwrite: string
x-oss-copy-source-if-match: string
x-oss-copy-source-if-none-match: string
x-oss-copy-source-if-unmodified-since: string
x-oss-copy-source-if-modified-since: string
x-oss-metadata-directive: string
x-oss-server-side-encryption: string
x-oss-server-side-data-encryption: string
x-oss-server-side-encryption-key-id: string
x-oss-object-acl: string
x-oss-storage-class: string
x-oss-tagging: string
x-oss-tagging-directive: string
x-oss-meta-*: object

路径参数

字段名称字段详情
keystring

Object 完整路径。

示例值:exampledir/exampleobject.txt

请求参数

字段名称字段详情
bucketstring

Bucket 名称。

示例值:oss-example
x-oss-copy-sourcestring

指定拷贝的源地址。展开详情

示例值:/oss-example/oss.jpg
x-oss-forbid-overwritestring

指定 CopyObject 操作时是否覆盖同名目标 Object。当目标 Bucket 处于已开启或已暂停版本控制状态时,x-oss-forbid-overwrite请求 Header 设置无效,即允许覆盖同名 Object。展开详情

示例值:true
x-oss-copy-source-if-matchstring

如果源 Object 的 ETag 值和您提供的 ETag 相等,则执行拷贝操作,并返回 200 OK。展开详情

示例值:5B3C1A2E053D763E1B002CC607C5****
x-oss-copy-source-if-none-matchstring

如果源 Object 的 ETag 值和您提供的 ETag 不相等,则执行拷贝操作,并返回 200 OK。展开详情

示例值:5B3C1A2E053D763E1B002CC607C5****
x-oss-copy-source-if-unmodified-sincestring

如果指定的时间等于或者晚于文件实际修改时间,则正常拷贝文件,并返回 200 OK。展开详情

示例值:2019-04-09T07:01:56.000Z
x-oss-copy-source-if-modified-sincestring

如果源 Object 在用户指定的时间以后被修改过,则执行拷贝操作。展开详情

示例值:2019-04-09T07:01:56.000Z
x-oss-metadata-directivestring

指定如何设置目标 Object 的元信息。展开详情

示例值:COPY
x-oss-server-side-encryptionstring

指定 OSS 创建目标 Object 时,服务器端熵编码加密算法 。展开详情

示例值:AES256
x-oss-server-side-data-encryptionstring

指定 Object 的加密算法。如果未指定此选项,表明 Object 使用 AES256 加密算法。此选项仅当 x-oss-server-side-encryption 为 KMS 时有效。

示例值:SM4
x-oss-server-side-encryption-key-idstring

表示 KMS 托管的用户主密钥。展开详情

示例值:9468da86-3509-4f8d-a61e-6eab1eac****
x-oss-object-aclstring

指定 OSS 创建 Object 时的访问权限。展开详情

示例值:public-read枚举值:privatepublic-readpublic-read-writedefault
x-oss-storage-classstring

Bucket 的存储类型。 取值范围如下:展开详情

示例值:Standard枚举值:ArchiveColdArchiveIAStandard
x-oss-taggingstring

指定 Object 的对象标签,可同时设置多个标签,例如 TagA=A&TagB=B。展开详情

示例值:a:1
x-oss-tagging-directivestring

指定如何设置目标 Object 的对象标签。取值如下:展开详情

示例值:Copy
x-oss-meta-*map<string>

如果配置以 x-oss-meta-*为前缀的参数,则该参数视为元数据。展开详情

返回参数

字段名称字段详情
CopyObjectResultobject

保存 CopyObject 结果的容器。

变更历史
变更时间变更内容概要操作
2024-03-07
新增请求参数x-oss-server-side-data-encryption
2024-02-21
变更返回参数