華為云計算 云知識 批量刪除對象DeleteObjects
批量刪除對象DeleteObjects

 

接口說明

批量刪除對象特性用于將一個桶內(nèi)的部分對象一次性刪除,刪除后不可恢復(fù)。批量刪除對象要求返回結(jié)果里包含每個對象的刪除結(jié)果。OBS的批量刪除對象使用同步刪除對象的方式,每個對象的刪除結(jié)果返回給請求用戶。

批量刪除對象支持兩種響應(yīng)方式:verbose和quiet。Verbose是指在返回響應(yīng)時,不管對象是否刪除成功都將刪除結(jié)果包含在XML響應(yīng)里;quiet是指在返回響應(yīng)時,只返回刪除失敗的對象結(jié)果,沒有返回的認(rèn)為刪除成功。OBS默認(rèn)使用verbose模式,如果用戶在請求消息體中指定quiet模式的話, 使用quiet模式。

批量刪除的請求消息頭中必須包含Content-MD5以及Content-Length,用以保證請求的消息體在服務(wù)端檢測到網(wǎng)絡(luò)傳輸如果有錯,則可以檢測出來。

URL
POST  https://obs.cn-north-4.myhuaweicloud.com/ 
請求參數(shù)
名稱 類型 IN 必選 描述
Authorization
 
string header

請求消息中可帶的簽名信息。

Content-MD5
 
string header

按照RFC 1864標(biāo)準(zhǔn)計算出消息體的MD5摘要字符串,即消息體128-bit MD5值經(jīng)過base64編碼后得到的字符串。

Date
 
string header

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

bucket_name
 
string query

請求的桶名稱。

delete
 
string query

delete表示請求批量刪除對象API。

Body參數(shù)
名稱 類型 必選 描述
Quiet
 
boolean

用于指定使用quiet模式,只返回刪除失敗的對象結(jié)果;如果有此字段,則必被置為True,如果為False則被系統(tǒng)忽略掉。

EncodingType
 
string

用于指定待刪除的對象Key和響應(yīng)中的對象Key的編碼類型。如果Key包含xml 1.0標(biāo)準(zhǔn)不支持的控制字符,可通過設(shè)置該元素指定對象Key的編碼類型。

Object
 
Array of DeleteObject objects  
參數(shù):
Object
名稱 類型 必選 描述
Key
 
string

待刪除的對象Key。如果設(shè)置了EncodingType元素,對象Key需要按照對應(yīng)的編碼類型進(jìn)行編碼。

VersionId
 
string

待刪除的對象版本號。

返回參數(shù)
返回碼: 200

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

名稱 類型 必選 描述
Content-Length
 
string

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

Connection
 
string

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

Date
 
string

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

ETag
 
string

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

x-obs-id-2
 
string

幫助定位問題的特殊符號。

x-obs-request-id
 
string

由OBS創(chuàng)建來唯一確定本次請求的值,可以通過該值來定位問題。

名稱 類型 必選 描述
EncodingType
 
string

對響應(yīng)中的Key進(jìn)行指定類型的編碼。如果請求消息中設(shè)置了EncodingType,那響應(yīng)中的Key會被編碼。

Deleted
 
Array of DeleteResultDeleted objects  
Error
 
Array of DeleteResultError objects  
200 Deleted
名稱 類型 必選 描述
Key
 
string

每個刪除結(jié)果的對象名。

VersionId
 
string

刪除對象的版本號

DeleteMarker
 
boolean

當(dāng)批量刪除請求訪問的桶是多版本桶時,如果創(chuàng)建或刪除一個刪除標(biāo)記,返回消息中該元素的值為true。

DeleteMarkerVersionId
 
boolean

請求創(chuàng)建或刪除的刪除標(biāo)記版本號。

當(dāng)批量刪除請求訪問的桶是多版本桶時,如果創(chuàng)建或刪除一個刪除標(biāo)記,響應(yīng)消息會返回該元素。該元素在以下兩種情況中會出現(xiàn):

用戶發(fā)送不帶版本刪除請求,即請求只有對象名,無版本號。這種情況下,系統(tǒng)會創(chuàng)建一個刪除標(biāo)記,并在響應(yīng)中返回該刪除標(biāo)記的版本號。 用戶發(fā)送帶版本刪除請求,即請求同時包含對象名以及版本號,但是該版本號標(biāo)識一個刪除標(biāo)記。這種情況下,系統(tǒng)會刪除此刪除標(biāo)記,并在響應(yīng)中返回該刪除標(biāo)記的版本號。

200 Error
名稱 類型 必選 描述
Key
 
string

每個刪除結(jié)果的對象名。

Code
 
string

刪除失敗結(jié)果的錯誤碼。

Message
 
string

刪除失敗結(jié)果的錯誤消息。

返回碼: 400

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

錯誤碼 描述 HTTP狀態(tài)碼
- 超過1000個對象。 400 Bad Request
- 對象Key不合法 400 Bad Request
- 請求消息頭中不包含Content-MD5 400 Bad Request
名稱 類型 必選 描述
Code
 
string

錯誤響應(yīng)消息體XML中錯誤響應(yīng)對應(yīng)的HTTP消息返回碼,具體的錯誤碼請參見錯誤碼-表2。

Message
 
string

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

RequestId
 
string

本次錯誤請求的請求ID,用于錯誤定位。

HostId
 
string

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

Resource
 
string

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

請求示例
示例 1
 
"/?delete"
 
"POST /test333?delete HTTP/1.1\nUser-Agent: curl/7.29.0\nHost: 127.0.0.1\nAccept: */*\nDate: WED, 01 Jul 2015 04:34:21 GMT\nAuthorization: OBS H4IPJX0TQTHTHEBQQCEC:8sjZWJlWmYmYnK5JqXaFFQ+vHEg=\nContent-MD5: ZPzz8L+hdRJ6qCqYbU/pCw==\nContent-Length: 188\n\n<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Delete> \n <Quiet>true</Quiet> \n <Object> \n <Key>obja02</Key> \n </Object> \n <Object> \n <Key>obja02</Key> \n </Object> \n</Delete>\n"
錯誤碼
請參考 錯誤碼說明。