閱讀616 返回首頁    go 人物


UploadPart__關於MultipartUpload的操作_API 參考_對象存儲 OSS-阿裏雲

初始化一個Multipart Upload之後,可以根據指定的Object名和Upload ID來分塊(Part)上傳數據。每一個上傳的Part都有一個標識它的號碼(part number,範圍是1~10,000)。對於同一個Upload ID,該號碼不但唯一標識這一塊數據,也標識了這塊數據在整個文件內的相對位置。如果你用同一個part號碼,上傳了新的數據,那麼OSS上已有的這個號碼的Part數據將被覆蓋。除了最後一塊Part以外,其他的part最小為100KB;最後一塊Part沒有大小限製。

請求語法

  1. PUT /ObjectName?partNumber=PartNumber&uploadId=UploadId HTTP/1.1
  2. Host: BucketName.oss-cn-hangzhou.aliyuncs.com
  3. Date: GMT Date
  4. Content-Length: Size
  5. Authorization: SignatureValue

細節分析

  1. 調用該接口上傳Part數據前,必須調用Initiate Multipart Upload接口,獲取一個OSS服務器頒發的Upload ID。
  2. Multipart Upload要求除最後一個Part以外,其他的Part大小都要大於100KB。但是Upload Part接口並不會立即校驗上傳Part的大小(因為不知道是否為最後一塊);隻有當Complete Multipart Upload的時候才會校驗。
  3. OSS會將服務器端收到Part數據的MD5值放在ETag頭內返回給用戶。
  4. Part號碼的範圍是1~10000。如果超出這個範圍,OSS將返回InvalidArgument的錯誤碼。
  5. 若調用Initiate Multipart Upload接口時,指定了x-oss-server-side-encryption請求頭,則會對上傳的Part進行加密編碼,並在Upload Part響應頭中返回x-oss-server-side-encryption頭,其值表明該Part的服務器端加密算法,具體見Initiate Multipart Upload接口。6.為了保證數據在網絡傳輸過程中不出現錯誤,用戶發送請求時攜帶Content-MD5,OSS會計算上傳數據的MD5與用戶上傳的MD5值比較,如果不一致返回InvalidDigest錯誤碼。

示例

請求示例:

  1. PUT /multipart.data?partNumber=1&uploadId=0004B9895DBBB6EC98E36 HTTP/1.1
  2. Host: oss-example.oss-cn-hangzhou.aliyuncs.com
  3. Content-Length:6291456
  4. Date: Wed, 22 Feb 2012 08:32:21 GMT
  5. Authorization: OSS qn6qrrqxo2oawuk53otfjbyc:J/lICfXEvPmmSW86bBAfMmUmWjI=
  6. [6291456 bytes data]

返回示例:

  1. HTTP/1.1 200 OK
  2. Server: AliyunOSS
  3. Connection: keep-alive
  4. ETag: 7265F4D211B56873A381D321F586E4A9
  5. x-oss-request-id: 3e6aba62-1eae-d246-6118-8ff42cd0c21a
  6. Date: Wed, 22 Feb 2012 08:32:21 GMT

最後更新:2016-11-23 17:16:08

  上一篇:go InitiateMultipartUpload__關於MultipartUpload的操作_API 參考_對象存儲 OSS-阿裏雲
  下一篇:go UploadPartCopy__關於MultipartUpload的操作_API 參考_對象存儲 OSS-阿裏雲