上傳段UploadPart

 

接口說(shuō)明

上傳段 多段上傳任務(wù)創(chuàng)建后,用戶可以通過(guò)指定多段上傳任務(wù)號(hào),通過(guò)上傳段接口為特定的任務(wù)上傳段,從客戶端上傳新數(shù)據(jù)。同一個(gè)對(duì)象的同一個(gè)多段上傳任務(wù)在上傳段時(shí),上傳的順序?qū)罄m(xù)的合并操作沒(méi)有影響,也即支持多個(gè)段并發(fā)上傳。 段大小范圍是[100KB,5GB],但在進(jìn)行合并段操作時(shí),最后一個(gè)段的大小范圍為[0,5GB]。上傳的段的編號(hào)也有范圍限制,其范圍是[1,10000]。 該操作支持服務(wù)端加密功能 須知: 段任務(wù)中的partNumber是唯一的,重復(fù)上傳相同partNumber的段,后一次上傳會(huì)覆蓋前一次上傳內(nèi)容。多并發(fā)上傳同一對(duì)象的同一partNumber時(shí),服務(wù)端遵循Last Write Win策略,但“Last Write”的時(shí)間定義為段元數(shù)據(jù)創(chuàng)建時(shí)間。為了保證數(shù)據(jù)準(zhǔn)確性,客戶端需要加鎖保證同一對(duì)象的同一個(gè)段上傳的并發(fā)性。同一對(duì)象的不同段并發(fā)上傳不需要加鎖。

URL
PUT  https://obs.cn-north-4.myhuaweicloud.com/{object_key} 
請(qǐng)求參數(shù)
名稱(chēng) 類(lèi)型 IN 必選 描述
Authorization
 
string header

請(qǐng)求消息中可帶的簽名信息。

Date
 
string header

請(qǐng)求發(fā)起端的日期和時(shí)間,例如:Wed, 27 Jun 2018 13:39:15 +0000。 默認(rèn)值:無(wú)。 條件:如果消息頭中帶了x-obs-date字段,則可以不帶該字段,其他情況下必選。

x-obs-server-side-encryption-customer-algorithm
 
string header

SSE-C方式下使用該頭域,該頭域表示加密使用的算法。

類(lèi)型:字符串

示例:x-obs-server-side-encryption-customer-algorithm:AES256

約束:需要和x-obs-server-side-encryption-customer-key, x-obs-server-side-encryption-customer-key-MD5一起使用。

當(dāng)使用SSE-C方式時(shí),必選,需要與初始化上傳段任務(wù)使用相同的算法。

x-obs-server-side-encryption-customer-key
 
string header

SSE-C方式下使用該頭域,該頭域表示加密使用的密鑰。該密鑰用于加密對(duì)象。

類(lèi)型:字符串

示例:x-obs-server-side-encryption-customer-key:K7QkYpBkM5+hcs27fsNkUnNVaobncnLht/rCB2o/9Cw=

約束:該頭域由256-bit的密鑰經(jīng)過(guò)base64-encoded得到,需要和x-obs-server-side-encryption-customer-algorithm,x-obs-server-side-encryption-customer-key-MD5一起使用。

當(dāng)使用SSE-C方式時(shí),必選,需要與初始化上傳段任務(wù)使用相同的密鑰

x-obs-server-side-encryption-customer-key-MD5
 
string header

SSE-C方式下使用該頭域,該頭域表示加密使用的密鑰的MD5值。MD5值用于驗(yàn)證密鑰傳輸過(guò)程中沒(méi)有出錯(cuò)。

類(lèi)型:字符串

示例:x-obs-server-side-encryption-customer-key-MD5:4XvB3tbNTN+tIEVa0/fGaQ==

約束:該頭域由密鑰的128-bit MD5值經(jīng)過(guò)base64-encoded得到,需要和x-obs-server-side-encryption-customer-algorithm,x-obs-server-side-encryption-customer-key一起使用。

當(dāng)使用SSE-C方式時(shí),必選,需要與初始化上傳段任務(wù)使用相同的MD5值

object_key
 
string path

通過(guò)此請(qǐng)求創(chuàng)建的對(duì)象名稱(chēng)。

bucket_name
 
string query

桶名稱(chēng)

partNumber
 
integer query

上傳段的段號(hào)。取值為從1到10000的整數(shù)

uploadId
 
string query

多段上傳任務(wù)Id。

Body參數(shù)
名稱(chēng) 類(lèi)型 必選 描述
 
file  
返回參數(shù)
返回碼: 200

請(qǐng)求成功響應(yīng)消息。

名稱(chēng) 類(lèi)型 必選 描述
Content-Length
 
string

響應(yīng)消息體的字節(jié)長(zhǎng)度。

Connection
 
string

指明與服務(wù)器的連接是長(zhǎng)連接還是短連接。

Date
 
string

OBS系統(tǒng)響應(yīng)的時(shí)間。

ETag
 
string

對(duì)象的base64編碼的128位MD5摘要。ETag是對(duì)象內(nèi)容的唯一標(biāo)識(shí),可以通過(guò)該值識(shí)別對(duì)象內(nèi)容是否有變化。比如上傳對(duì)象時(shí)ETag為A,下載對(duì)象時(shí)ETag為B,則說(shuō)明對(duì)象內(nèi)容發(fā)生了變化。實(shí)際的ETag是對(duì)象的哈希值。ETag只反映變化的內(nèi)容,而不是其元數(shù)據(jù)。上傳的對(duì)象或拷貝操作創(chuàng)建的對(duì)象,通過(guò)MD5加密后都有唯一的ETag。如果通過(guò)多段上傳對(duì)象,則無(wú)論加密方法如何,MD5會(huì)拆分ETag,此類(lèi)情況ETag就不是MD5的摘要。

x-obs-id-2
 
string

幫助定位問(wèn)題的特殊符號(hào)。

x-obs-request-id
 
string

由OBS創(chuàng)建來(lái)唯一確定本次請(qǐng)求的值,可以通過(guò)該值來(lái)定位問(wèn)題。

x-obs-server-side-encryption
 
string

如果服務(wù)端加密是SSE-KMS方式,響應(yīng)包含該頭域。

類(lèi)型:字符串

示例:x-obs-server-side-encryption:kms

x-obs-server-side-encryption-kms-key-id
 
string

如果服務(wù)端加密是SSE-KMS方式,響應(yīng)包含該頭域,該頭域表示主密鑰。

類(lèi)型:字符串

格式為: regionID:domainID(租戶ID):key/key_id

其中regionID是使用密鑰所屬region的ID;domainID是使用密鑰所屬租戶的租戶ID;key_id是本次加密使用的密鑰ID。

示例: x-obs-server-side-encryption-kms-key-id:cn-north-4:domainiddomainiddomainiddoma0001:key/4f1cd4de-ab64-4807-920a-47fc42e7f0d0

x-obs-server-side-encryption-customer-algorithm
 
string

如果服務(wù)端加密是SSE-C方式,響應(yīng)包含該頭域,該頭域表示加密使用的算法。

類(lèi)型:字符串

示例:x-obs-server-side-encryption-customer-algorithm:AES256

x-obs-server-side-encryption-customer-key-MD5
 
string

如果服務(wù)端加密是SSE-C方式,響應(yīng)包含該頭域,該頭域表示加密使用的密鑰的MD5值。

類(lèi)型:字符串

示例:x-obs-server-side-encryption-customer-key-MD5:4XvB3tbNTN+tIEVa0/fGaQ==

返回碼: 400

請(qǐng)求失敗響應(yīng)消息。 除了公共的錯(cuò)誤碼外,此接口還會(huì)返回一些其他的錯(cuò)誤碼。下面列出本接口的一些常見(jiàn)錯(cuò)誤,以及可能原因。

錯(cuò)誤碼 描述 HTTP狀態(tài)碼
- 段序號(hào)超過(guò)范圍[1,10000]。 400 Bad Request
- 段大小超過(guò)5G。 400 Bad Request
名稱(chēng) 類(lèi)型 必選 描述
Code
 
string

錯(cuò)誤響應(yīng)消息體XML中錯(cuò)誤響應(yīng)對(duì)應(yīng)的HTTP消息返回碼,具體的錯(cuò)誤碼請(qǐng)參見(jiàn)錯(cuò)誤碼-表2

Message
 
string

錯(cuò)誤響應(yīng)消息體XML中具體錯(cuò)誤更全面、詳細(xì)的英文解釋,具體的錯(cuò)誤消息請(qǐng)參見(jiàn)錯(cuò)誤碼-表2。

RequestId
 
string

本次錯(cuò)誤請(qǐng)求的請(qǐng)求ID,用于錯(cuò)誤定位。

HostId
 
string

返回該消息的服務(wù)端ID。

Resource
 
string

該錯(cuò)誤相關(guān)的桶或?qū)ο筚Y源。

返回碼: 403

請(qǐng)求失敗響應(yīng)消息。 除了公共的錯(cuò)誤碼外,此接口還會(huì)返回一些其他的錯(cuò)誤碼。下面列出本接口的一些常見(jiàn)錯(cuò)誤,以及可能原因。

錯(cuò)誤碼 描述 HTTP狀態(tài)碼
AccessDenied AccessKey或簽名無(wú)效。 403 Forbidden
AccessDenied 用戶對(duì)目的桶沒(méi)有寫(xiě)權(quán)限。 403 Forbidden
AccessDenied 用戶不是多段上傳任務(wù)的發(fā)起者。 403 Forbidden
名稱(chēng) 類(lèi)型 必選 描述
Code
 
string

錯(cuò)誤響應(yīng)消息體XML中錯(cuò)誤響應(yīng)對(duì)應(yīng)的HTTP消息返回碼,具體的錯(cuò)誤碼請(qǐng)參見(jiàn)錯(cuò)誤碼-表2

Message
 
string

錯(cuò)誤響應(yīng)消息體XML中具體錯(cuò)誤更全面、詳細(xì)的英文解釋,具體的錯(cuò)誤消息請(qǐng)參見(jiàn)錯(cuò)誤碼-表2。

RequestId
 
string

本次錯(cuò)誤請(qǐng)求的請(qǐng)求ID,用于錯(cuò)誤定位。

HostId
 
string

返回該消息的服務(wù)端ID。

Resource
 
string

該錯(cuò)誤相關(guān)的桶或?qū)ο筚Y源。

返回碼: 404

請(qǐng)求失敗響應(yīng)消息。 除了公共的錯(cuò)誤碼外,此接口還會(huì)返回一些其他的錯(cuò)誤碼。下面列出本接口的一些常見(jiàn)錯(cuò)誤,以及可能原因。

錯(cuò)誤碼 描述 HTTP狀態(tài)碼
NoSuchBucket 桶不存在。 404 Not Found
NoSuchUpload 多段上傳任務(wù)不存在。 404 Not Found
名稱(chēng) 類(lèi)型 必選 描述
Code
 
string

錯(cuò)誤響應(yīng)消息體XML中錯(cuò)誤響應(yīng)對(duì)應(yīng)的HTTP消息返回碼,具體的錯(cuò)誤碼請(qǐng)參見(jiàn)錯(cuò)誤碼-表2

Message
 
string

錯(cuò)誤響應(yīng)消息體XML中具體錯(cuò)誤更全面、詳細(xì)的英文解釋,具體的錯(cuò)誤消息請(qǐng)參見(jiàn)錯(cuò)誤碼-表2

RequestId
 
string

本次錯(cuò)誤請(qǐng)求的請(qǐng)求ID,用于錯(cuò)誤定位。

HostId
 
string

返回該消息的服務(wù)端ID。

Resource
 
string

該錯(cuò)誤相關(guān)的桶或?qū)ο筚Y源。

請(qǐng)求示例
示例 1
 
"PUT /object02?partNumber=1&uploadId=00000163D40171ED8DF4050919BD02B8"
 
"PUT /object02?partNumber=1&uploadId=00000163D40171ED8DF4050919BD02B8 HTTP/1.1\nUser-Agent: curl/7.29.0\nHost: examplebucket.obs.cn-north-4.myhuaweicloud.com\nAccept: */*\nDate: WED, 01 Jul 2015 05:15:55 GMT\nAuthorization: OBS H4IPJX0TQTHTHEBQQCEC:ZB0hFwaHubi1aKHv7dSZjJts40g=\nContent-Length: 102015348\n\n[102015348 Byte part content]"
錯(cuò)誤碼
請(qǐng)參考 錯(cuò)誤碼說(shuō)明