copy-object

更新时间:2025-04-01 03:15:16

copy-object用于拷贝同一地域下相同或不同存储空间(Bucket)之间的文件(Object)。

注意事项

  • 如果需要恢复Object的早期版本为当前版本,您只需将Object的早期版本拷贝到同一个Bucket中,OSS会将该Object对应的早期版本置为当前版本。

  • 如果源Bucket和目标Bucket相同,则Object的大小无限制。如果源Bucket和目标Bucket不同,则建议拷贝小于1 GBObject。当您需要拷贝大于1 GBObject时,请使用upload-part-copy

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

权限说明

阿里云账号默认拥有全部权限。阿里云账号下的RAM用户或RAM角色默认没有任何权限,需要阿里云账号或账号管理员通过RAM PolicyBucket Policy授予操作权限。

API

Action

说明

API

Action

说明

CopyObject

oss:GetObject

拷贝同一地域下相同或不同存储空间(Bucket)之间的文件(Object)。

oss:PutObject

oss:GetObjectVersion

如果通过versionId指定拷贝的源Object版本,还需要此操作的权限。

oss:GetObjectTagging

如果通过x-oss-tagging拷贝Object的标签,则需要此操作的权限。

oss:PutObjectTagging

oss:GetObjectVersionTagging

如果通过versionId指定拷贝的源Object特定版本的Object的标签,还需要此操作的权限。

kms:GenerateDataKey

拷贝Object时,如果目标Object的元数据包含X-Oss-Server-Side-Encryption: KMS,则需要这两个权限。

kms:Decrypt

命令格式

ossutil api copy-object --bucket value --key value --copy-source value [flags]

参数

类型

说明

参数

类型

说明

--bucket

string

Bucket名称。

--key

string

Object的完整路径。

--forbid-overwrite

string

指定CopyObject操作时是否覆盖同名目标Object。

--copy-source

string

拷贝源地址(必须有可读权限),其格式为:bucket/UrIEncode(key),需要对源对象名做url encode编码。

--copy-source-if-match

string

如果源ObjectETAG值和用户提供的ETAG相等,则执行拷贝操作;否则返回412 HTTP错误码(预处理失败)。

--copy-source-if-modified-since

string

如果指定的时间早于实际修改时间,则正常传送文件,并返回200 OK;否则返回304 not modified。

--copy-source-if-none-match

string

如果传入的ETag值和ObjectETag不匹配,则正常传输文件,并返回200 OK;否则返回304 Not Modified。

--copy-source-if-unmodified-since

string

如果传入参数中的时间等于或者晚于文件实际修改时间,则正常传输文件,并返回200 OK;否则返回412 precondition failed错误

--metadata

stringArray

指定对象的用户元数据,使用key=value格式,如需要自定义携带的元数据,需配置以x-oss-meta-*为前缀的参数。

--metadata-directive

string

指定如何设置目标Object的元信息。

--object-acl

string

指定Object的访问权限。

--server-side-encryption

string

指定服务器端加密方式。

--server-side-encryption-key-id

string

表示KMS托管的用户主密钥。

--storage-class

string

指定Object的存储类型。

--tagging

string

指定Object的标签。

--tagging-directive

string

指定如何设置目标Object的对象标签。

说明

使用示例

  • 拷贝srcBucket存储空间下的srcObjectexamplebucket存储空间下的exampleobject。

    ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /srcBucket/srcObject
  • 拷贝examplebucket存储空间下的srcObjectexampleobject。

    ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject
  • 拷贝examplebucket存储空间下的srcObjectexampleobject,以JSON格式显示。

    ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject --output-format json
  • 拷贝examplebucket存储空间下的srcObjectexampleobject,以YAML格式显示。

    ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject --output-format yaml
  • 拷贝examplebucket存储空间下的srcObjectexampleobject并禁止覆盖同名目标Object。

    ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject --forbid-overwrite true
  • 拷贝examplebucket存储空间下的srcObjectexampleobject,如果srcObjectETag等于123则执行拷贝。

    ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject --copy-source-if-match 123
  • 拷贝examplebucket存储空间下的srcObjectexampleobject,如果srcObject的修改时间早于 Mon, 11 May 2020 08:16:23 GMT则执行拷贝。

    ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject --copy-source-if-unmodified-since "Mon, 11 May 2020 08:16:23 GMT"
  • 拷贝examplebucket存储空间下的srcObjectexampleobject,忽略源srcObject的元数据,直接采用请求中指定的元数据。

    ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject --metadata-directive REPLACE --metadata user=aliyun --metadata email=ali***@aliyuncs.com
  • 拷贝examplebucket存储空间下的srcObjectexampleobject,忽略源Object的对象标签,直接采用请求中指定的对象标签。

    ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject --tagging-directive Replace --tagging "TagA=A&TagB=B"
  • 拷贝examplebucket存储空间下的srcObjectexampleobject,指定object的访问权限以及存储类型。

    ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject --object-acl private --storage-class IA
  • 本页导读 (1)
  • 注意事项
  • 权限说明
  • 命令格式
  • 使用示例
AI助理

点击开启售前

在线咨询服务

你好,我是AI助理

可以解答问题、推荐解决方案等