閱讀39 返回首頁    go 魔獸


DeleteMultipleObjects__關於Object操作_API 參考_對象存儲 OSS-阿裏雲

Delete Multiple Objects操作支持用戶通過一個HTTP請求刪除同一個Bucket中的多個Object。Delete Multiple Objects操作支持一次請求內最多刪除1000個Object,並提供兩種返回模式:詳細(verbose)模式和簡單(quiet)模式:

  • 詳細模式:OSS返回的消息體中會包含每一個刪除Object的結果。
  • 簡單模式:OSS返回的消息體中隻包含刪除過程中出錯的Object結果;如果所有刪除都成功的話,則沒有消息體。

請求語法

POST /?delete HTTP/1.1
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
Date: GMT Date
Content-Length: ContentLength
Content-MD5: MD5Value
Authorization: SignatureValue

<?xml version="1.0" encoding="UTF-8"?>
<Delete>
  <Quiet>true</Quiet>
  <Object>
    <Key>key</Key>
  </Object>
…
</Delete>

請求參數(Request Parameters)

Delete Multiple Objects時,可以通過encoding-type對返回結果中的Key進行編碼。

名稱 描述
encoding-type 指定對返回的Key進行編碼,目前支持url編碼。Key使用UTF-8字符,但xml 1.0標準不支持解析一些控製字符,比如ascii值從0到10的字符。對於Key中包含xml 1.0標準不支持的控製字符,可以通過指定encoding-type對返回的Key進行編碼。
數據類型:字符串
默認值:無,可選值:url

請求元素(Request Elements)

名稱 描述
Delete 保存Delete Multiple Object請求的容器。
類型:容器
子節點:一個或多個Object元素,可選的Quiet元素
父節點: None.
Key 被刪除Object的名字。
類型:字符串
父節點:Object
Object 保存一個Object信息的容器。
類型:容器
子節點:key
父節點:Delete.
Quiet 打開“簡單”響應模式的開關。
類型:枚舉字符串
有效值:true、false
默認值:false
父節點:Delete

響應元素(Response Elements)

名稱 描述
Deleted 保存被成功刪除的Object的容器。
類型:容器
子節點:Key
父節點:DeleteResult
DeleteResult 保存Delete Multiple Object請求結果的容器。
類型:容器
子節點:Deleted
父節點:None
Key OSS執行刪除操作的Object名字。
類型:字符串
父節點:Deleted
EncodingType 指明返回結果中編碼使用的類型。如果請求的參數中指定了encoding-type,那返回的結果會對Key進行編碼。
類型:字符串
父節點:容器

細節分析

  1. Delete Multiple Objects請求必須填Content-Length和Content-MD5字段。OSS會根據這些字段驗證收到的消息體是正確的,之後才會執行刪除操作。
  2. 生成Content-MD5字段內容方法:首先將Delete Multiple Object請求內容經過MD5加密後得到一個128位字節數組;再將該字節數組用base64算法編碼;最後得到的字符串即是Content-MD5字段內容。
  3. Delete Multiple Objects請求默認是詳細(verbose)模式。
  4. 在Delete Multiple Objects請求中刪除一個不存在的Object,仍然認為是成功的。
  5. Delete Multiple Objects的消息體最大允許2MB的內容,超過2MB會返回MalformedXML錯誤碼。
  6. Delete Multiple Objects請求最多允許一次刪除1000個Object;超過1000個Object會返回MalformedXML錯誤碼。
  7. 如果用戶上傳了Content-MD5請求頭,OSS會計算body的Content-MD5並檢查一致性,如果不一致,將返回InvalidDigest錯誤碼。

示例

請求示例I:

POST /?delete HTTP/1.1
Host: oss-example.oss-cn-hangzhou.aliyuncs.com
Date: Wed, 29 Feb 2012 12:26:16 GMT
Content-Length:151
Content-MD5: ohhnqLBJFiKkPSBO1eNaUA==
Authorization: OSS qn6qrrqxo2oawuk53otfjbyc:+z3gBfnFAxBcBDgx27Y/jEfbfu8=

<?xml version="1.0" encoding="UTF-8"?>

<Delete> 
  <Quiet>false</Quiet>  
  <Object> 
    <Key>multipart.data</Key> 
  </Object>  
  <Object> 
    <Key>test.jpg</Key> 
  </Object>  
  <Object> 
    <Key>demo.jpg</Key> 
  </Object> 
</Delete>

返回示例:

HTTP/1.1 200 OK
x-oss-request-id: 78320852-7eee-b697-75e1-b6db0f4849e7
Date: Wed, 29 Feb 2012 12:26:16 GMT
Content-Length: 244
Content-Type: application/xml
Connection: keep-alive
Server: AliyunOSS

<?xml version="1.0" encoding="UTF-8"?>
<DeleteResult xmlns=”https://doc.oss-cn-hangzhou.aliyuncs.com”>
    <Deleted>
       <Key>multipart.data</Key>
    </Deleted>
    <Deleted>
       <Key>test.jpg</Key>
    </Deleted>
    <Deleted>
       <Key>demo.jpg</Key>
    </Deleted>
</DeleteResult>

請求示例II:

POST /?delete HTTP/1.1
Host: oss-example.oss-cn-hangzhou.aliyuncs.com
Date: Wed, 29 Feb 2012 12:33:45 GMT
Content-Length:151
Content-MD5: ohhnqLBJFiKkPSBO1eNaUA==
Authorization: OSS qn6qrrqxo2oawuk53otfjbyc:WuV0Jks8RyGSNQrBca64kEExJDs=

<?xml version="1.0" encoding="UTF-8"?>

<Delete> 
  <Quiet>true</Quiet>  
  <Object> 
    <Key>multipart.data</Key> 
  </Object>  
  <Object> 
    <Key>test.jpg</Key> 
  </Object>  
  <Object> 
    <Key>demo.jpg</Key> 
  </Object> 
</Delete>

返回示例:

HTTP/1.1 200 OK
x-oss-request-id: 559CC9BDC755F95A64485981
Date: Wed, 29 Feb 2012 12:33:45 GMT
Content-Length: 0
Connection: keep-alive
Server: AliyunOSS

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

  上一篇:go DeleteObject__關於Object操作_API 參考_對象存儲 OSS-阿裏雲
  下一篇:go HeadObject__關於Object操作_API 參考_對象存儲 OSS-阿裏雲