Skip to Content

文件拷贝 - Copy

简介

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

使用限制

  • Object大小限制
    • 建议通过Copy拷贝小于 100MB 的Object。当您需要拷贝大于 100MB 的Object时,需使用UploadPartCopy接口。
  • 权限说明
    • 使用Copy或UploadPartCopy接口均要求对源Object有读权限。

定义

句法(Syntax):

PUT /<object_name> HTTP/1.1 Host: <bucket_name>.cn-bj.ufileos.com Authorization: <token> Content-Length: <length> X-Ufile-Copy-Source: </SourceBucketName/SourceObjectName>

请求参数(Request Parameters)

请求头(Request Headers)

NameTypeDescriptionRequired
AuthorizationString上传请求的授权签名,API 签名算法Yes
Content-LengthInteger请求body部分即待上传文件的长度Yes
X-Ufile-Copy-SourceString指定拷贝的源地址Yes
X-Ufile-Metadata-DirectiveString指定如何设置目标Object的元信息。
* COPY(默认值):复制源Object的元数据到目标Object。
* REPLACE:忽略源Object的元数据,直接采用请求中指定的元数据。文件存储类型,分别是标准、低频、归档,对应有效值:STANDARD, IA, ARCHIVE
No
X-Ufile-Storage-ClassStringNo

请求元素(Request Elements)

说明:未使用。

响应(Responses)

响应头(Response Headers)

NameTypeDescription
Content-TypeString响应body部分的类型
Content-LengthInteger响应body部分的长度
ETagString已经上传文件在US3中的哈希值
X-SessionIdString请求失败时返回本次请求的会话Id

响应元素(Response Elements)

NameTypeDescription
RetCodeInteger执行失败时的错误代码
ErrMsgString执行失败时的错误消息

注意: 成功执行只会返回HTTP 200回应,不带body数据。

示例

请求示例(Example Request):

PUT /demokey HTTP/1.1 Host: <bucket_name>.cn-bj.ufileos.com Authorization: demouser@ucloud.cn13424346821929713944:S5FVD2w613MKb/hisjaqHdjvn9U= Content-Length: 11434 Content-Type: image/jpg Content-MD5: c5371fe3624d438cd8a59420a3221978 X-Ufile-Copy-Source: /SourceBucketName/SourceObjectName

响应示例(Example Response):

HTTP/1.1 200 OK Content-Length: 0 ETag: "AQAAABP9DJdoo2X0hKyax2pVTLQPaVzH"

响应错误示例(Example Response with Error):

HTTP/1.1 404 Not Found Content-Type: applicaton/json Content-Length: 54 X-SessionId: e2f4fc84-3936-4a2d-85b5-ef8f2e79933c X-Ufile-Copy-Source: /SourceBucketName/SourceObjectName { "RetCode": -30010, "ErrMsg": "bucket not exist" }