初始化一個MultipartUpload後,調用UploadPart介面根據指定的Object名和uploadId來分塊(Part)上傳資料。
注意事項
調用UploadPart介面上傳Part資料前,必須先調用InitiateMultipartUpload介面來擷取OSS伺服器產生的uploadId。
如果使用同一個partNumber上傳了新的資料,則OSS上已有的partNumber對應的Part資料將被覆蓋。
OSS會將伺服器端收到Part資料的MD5值放在ETag頭返回給使用者。
如果調用InitiateMultipartUpload介面時,指定了x-oss-server-side-encryption要求標頭,則會對上傳的Part進行加密編碼,並在UploadPart回應標頭中返回x-oss-server-side-encryption頭,其值表明該Part的伺服器端密碼編譯演算法。更多資訊,請參見InitiateMultipartUpload。
請求文法
PUT /ObjectName?partNumber=PartNumber&uploadId=UploadId HTTP/1.1
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
Date: GMT Date
Content-Length: Size
Authorization: SignatureValue
要求標頭
此介面僅涉及公用要求標頭。更多資訊,請參見公用要求標頭(Common Request Headers)。
請求元素
名稱 | 類型 | 是否必選 | 樣本值 | 描述 |
partNumber | 正整數 | 是 | 1 | 每一個上傳的Part都有一個標識它的號碼(partNumber)。 取值:1~10000 單個Part的大小限制為100 KB~5 GB。 說明 MultipartUpload事件中除最後一個Part以外,其他Part的大小都要大於或等於100 KB。因不確定是否為最後一個Part,UploadPart介面並不會立即校正上傳Part的大小,只有當CompleteMultipartUpload時才會校正。 |
uploadId | 字串 | 是 | 0004B9895DBBB6EC9**** | uploadId用於唯一標識上傳的Part屬於哪個Object。 |
回應標頭
名稱 | 類型 | 樣本值 | 描述 |
Content-MD5 | 字串 | 1B2M2Y8AsgTpgAmY7PhC**** | 表示Part的MD5值。 重要 Part的MD5值指的是用戶端上傳完成後擷取到的分區MD5,並非響應體的MD5。 |
x-oss-hash-crc64ecma | 字串 | 316181249502703**** | 表示Part的CRC64值。 |
此介面還涉及其他公用回應標頭,例如Date、x-oss-request-id等。更多資訊,請參見公用回應標頭(Common Response Headers)。
樣本
請求樣本
PUT /multipart.data?partNumber=1&uploadId=0004B9895DBBB6EC9**** HTTP/1.1
Host: oss-example.oss-cn-hangzhou.aliyuncs.com
Content-Length:6291456
Date: Wed, 22 Feb 2012 08:32:21 GMT
Authorization: OSS qn6q**************:77Dv****************
[6291456 bytes data]
返回樣本
HTTP/1.1 200 OK
Server: AliyunOSS
Content-length: 0
Connection: keep-alive
ETag: "7265F4D211B56873A381D321F586****"
x-oss-request-id: 3e6aba62-1eae-d246-6118-8ff42cd0****
Date: Wed, 22 Feb 2012 08:32:21 GMT
Content-MD5: 1B2M2Y8AsgTpgAmY7Ph****
x-oss-hash-crc64ecma: 316181249502703****
x-oss-server-time: 77
SDK
錯誤碼
錯誤碼 | HTTP狀態代碼 | 描述 |
NoSuchUpload | 404 | 分區上傳ID不存在。 |
InvalidArgument | 400 | 超出partNumber範圍(1~10000)。 |
InvalidDigest | 400 | 為了保證資料在網路傳輸過程中不出現錯誤,使用者發送請求時可以攜帶Content-MD5,OSS計算上傳資料的MD5與使用者上傳的MD5值不一致則表示資料轉送出現錯誤。 |