帮你快速理解、总结文档立即下载

复制对象

最近更新时间:2026-10-21 18:34:06
我的收藏
在同一高性能桶内复制对象(PUT Object - Copy),常用于对象备份或修改对象元数据。对高性能桶发起请求时,SDK 自动完成会话鉴权。

注意事项

需要自动选择直接复制或分块复制时,使用 Python SDK 高级复制对象,并留意两种路径的元数据差异。
源与目标均为文件对象,对象键末尾的 / 严格区分类型,不做容错;源键以 / 结尾返回 400 InvalidCopySource,目标键以 / 结尾返回 400 InvalidArgument。
不带 / 的源键若实际对应同名目录,按源对象不存在处理,返回 404 NoSuchKey。
高性能桶仅支持同桶复制,源对象与目标对象必须位于同一个高性能桶,SDK 会在请求前本地校验。
高性能桶不支持对象版本,CopySource 中传入 VersionId 会本地报错。
超过 5GB 的对象请使用分块复制(详见 Python SDK 复制分块)。
复制属于数据面接口,SDK 使用 session 临时凭证签名。

请求

方法原型

def copy_object(self, Bucket, Key, CopySource, CopyStatus='Copy', **kwargs)

参数说明

参数名称
参数描述
类型
是否必选
Bucket
目标高性能桶完整名称,格式为 <BucketName>-x--<APPID>
string
是
Key
目标对象键(Object Key)
string
是
CopySource
复制源信息,dict 类型,含 Bucket、Key、Region 等字段
dict
是
CopyStatus
元数据复制方式,可选 Copy(默认,复制源元数据)或 Replaced(用本次请求头替换元数据)
string
否
kwargs
可选请求参数,使用本文列出的参数
dict
否
CopySource 字段:
参数名称
参数描述
类型
是否必选
Bucket
源对象所在的高性能桶完整名称,须与目标桶相同
string
是
Key
源对象键
string
是
Region
源对象所在地域
string
是

响应

返回值为字典:
参数名称
参数描述
类型
ETag
复制生成对象的 ETag
string
LastModified
对象的最后修改时间
string
响应头 dict
同时包含响应头部字段
dict

错误码

本接口遵循统一的错误响应和错误码,详情请参见 错误码文档。

实际案例

# -*- coding=utf-8 -*-
import os
from qcloud_cos import CosConfig, CosS3Client

# 高性能桶经 VPC 内网 HTTP 80 端口接入,SDK 的网关 DNS 负载均衡也仅对 HTTP 请求生效;SDK 默认 https,此处需显式指定 http。
config = CosConfig(
Scheme='http',
Region='ap-guangzhou',
SecretId=os.environ['COS_SECRET_ID'],
SecretKey=os.environ['COS_SECRET_KEY'],
Token=os.environ.get('COS_SECURITY_TOKEN'),
EnableRapidDomain=True)
client = CosS3Client(config)

bucket = 'examplebucket-x--1250000000'

# 同桶复制,高性能桶要求源与目标在同一个桶。
resp = client.copy_object(
Bucket=bucket,
Key='dst.txt',
CopySource={'Bucket': bucket, 'Key': 'src.txt', 'Region': 'ap-guangzhou'})
print('ETag: %s' % resp['ETag'])