可以将已经存在的Object作为分段上传的片段,拷贝生成一个新的片段。需要指定请求头x-amz-copy-source来定义拷贝源。如果只拷贝源Object中的一部分,需要增加请求头x-amz-copy-source-range。PartNumber为新文件分片号,UploadId为新文件的分片上传ID。
在上传任何一个分片之前,必须执行Initial Multipart Upload操作来初始化分片上传操作,初始化成功后,OOS会返回一个上传ID,这是一个唯一的标识,用户必须在调用Copy Part接口时加入该ID。
请求语法
PUT /ObjectName?partNumber=PartNumber&uploadId=UploadId HTTP/1.1
Host: BucketName.oos-cn.ctyunapi.cn
x-amz-copy-source: /source_bucket/sourceObject
x-amz-copy-source-range:bytes=first-last
x-amz-copy-source-if-match: etag
x-amz-copy-source-if-none-match: etag
x-amz-copy-source-if-unmodified-since: time_stamp
x-amz-copy-source-if-modified-since: time_stamp
Date: Date
Authorization: SignatureValue
请求头
名称 | 描述 | 是否必须 |
---|---|---|
x-amz-copy-source | 指定源bucketname和objectname,用斜杠/分隔。 类型:字符串。 |
是 |
x-amz-copy-source-range | 要从源object拷贝的bytes范围。Range值的格式是bytes=第一个字节-最后一个字节。第一个字节从0开始。例如要拷贝前10个字节,bytes=0-9。只允许对大于5G的源object进行部分拷贝的操作。如果要拷贝整个object,不需要这个头。复制整个源文件时不需要此请求标头。 类型:字符串。 |
否 |
x-amz-copy-source-if-match | 只有文件的实体Etag与给定Etag匹配,才执行拷贝文件的操作;否则,返回412HTTP状态码错误。 类型:字符串。 |
否 |
x-amz-copy-source-if-none-match | 只有文件实体Etag和指定实体Etag不同,才执行拷贝操作;否则,返回412错误。 类型:字符串。 |
否 |
x-amz-copy-source-if-unmodified-since | 只有文件在指定时间点之后没有修改过,才执行拷贝操作;否则,返回412错误。格式为EEE, d MMM yyyy HH:mm:ss 'GMT'。 类型:字符串。 |
否 |
x-amz-copy-source-if-modified-since | 只有文件在指定时间点之后被修改过,才执行拷贝操作;否则,返回412错误。格式为EEE, d MMM yyyy HH:mm:ss 'GMT'。 类型:字符串。 |
否 |
响应结果
名称 | 描述 |
---|---|
Content-Length | 响应体的长度。只有客户端携带Expect: 102-processing请求头,才会返回该响应头。 |
CopyPartResult | 包含整个响应的容器。 类型:容器。 子节点:LastModified、ETag。 |
LastModified | 分片的最后修改时间。 类型:字符串。 父节点:CopyPartResult。 |
ETag | 新分片的ETag。 类型:字符串。 父节点:CopyPartResult。 |
请求示例
通过从源Object中指定范围,拷贝生成一个新片段。
PUT /newobject?partNumber=2&uploadId=738428231343369398 HTTP/1.1
Host: example-bucket.oos-cn.ctyunapi.cn
Date: Mon, 11 Apr 2011 20:34:56 GMT
x-amz-copy-source: /source-bucket/sourceobject
x-amz-copy-source-range:bytes=500-6291456
Authorization: SignatureValue
响应示例
HTTP/1.1 200 OK
x-amz-request-id: fd02454b7a5143db239689988d9a9ca261636b57595b5d5f61
Date: Mon, 11 Apr 2011 20:34:56 GMT
Server: CTYUN
<CopyPartResult xmlns=”http://s3.amazonaws.com/doc/2006-03-01/”>
<LastModified>2009-10-28T22:32:00</LastModified>
<ETag>9b2cf535f27731c974343645a3985328</ETag>
</CopyPartResult>