赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 对象存储
  4. 开发参考
  5. 常用工具
  6. 命令行工具ossutil 2.0
  7. ossutil命令
  8. API级命令
  9. 关于Object操作
  10. 基础操作
  11. copy-object

copy-object

  • 基础操作
  • 发布于 2025-04-21
  • 0 次阅读
文档编辑
文档编辑

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

注意事项

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

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

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

权限说明

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

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

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

--copy-source-if-modified-since

string

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

--copy-source-if-none-match

string

如果传入的ETag值和Object的ETag不匹配,则正常传输文件,并返回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的对象标签。

说明
  • copy-object命令对应API接口CopyObject。关于API中的具体参数含义,请参见CopyObject。

  • 关于支持的全局命令行选项,请参见支持的全局命令行选项。

使用示例

  • 拷贝srcBucket存储空间下的srcObject到examplebucket存储空间下的exampleobject。

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

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

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

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

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

    ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject --copy-source-if-match 123
  • 拷贝examplebucket存储空间下的srcObject到exampleobject,如果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存储空间下的srcObject到exampleobject,忽略源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存储空间下的srcObject到exampleobject,忽略源Object的对象标签,直接采用请求中指定的对象标签。

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

    ossutil api copy-object --bucket examplebucket --key exampleobject --copy-source /examplebucket/srcObject --object-acl private --storage-class IA
相关文章

put-object 2025-04-21 17:24

您可以通过API级命令向存储空间(Bucket)中上传文件(Object)。 注意事项 添加的Object大小不能超过5 GB。 默认情况下,如果已存在同名Object且对该Object有访问权限,则新添加的Obj

get-object 2025-04-21 17:24

您可以通过API级命令获取存储空间(Bucket)中的某个文件(Object)。 注意事项 GetObject接口默认可通过HTTP和HTTPS两种方式访问。如果要设置仅允许通过HTTPS方式访问,请使用Bucket Policy的授权访问方式。具体操作,请参见通过Bucket Policy授权用户

copy-object 2025-04-21 17:24

copy-object用于拷贝同一地域下相同或不同存储空间(Bucket)之间的文件(Object)。 注意事项 如果需要恢复Object的早期版本为当前版本,您只需将Object的早期版本拷贝到同一个Bucket中,OSS会将该Object对应的早期版本置为当前版本。<

append-object 2025-04-21 17:24

append-object用于以追加写的方式上传文件(Object)。 注意事项 通过append-object方式最后生成的Object大小不得超过5 GB。 append-object不支持指定CMK ID进行

delete-object 2025-04-21 17:24

delete-object用于删除文件(object)。 注意事项 阿里云账号默认拥有删除文件的权限。如果您需要通过RAM用户或者STS的方式进行删除,您必须拥有

delete-multiple-objects 2025-04-21 17:24

delete-multiple-objects用于删除同一个存储空间(Bucket)中的多个文件(Object)。 注意事项 阿里云账号默认拥有删除对象的标签的权限。如果您需要通过RAM用户或者STS的方式进行删除,您必须拥有

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号