Copy Part
更新時間 2024-10-09 18:28:33
最近更新時間: 2024-10-09 18:28:33
分享文章
本節主要介紹Copy Part。
可以將已經存在的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=”//s3.amazonaws.com/doc/2006-03-01/”>
<LastModified>2009-10-28T22:32:00</LastModified>
<ETag>9b2cf535f27731c974343645a3985328</ETag>
</CopyPartResult>