Delete Multiple Objects

DELETE Objectでは一度に1つのオブジェクトしか削除することができませんが、この操作を使うことによって1回のリクエストで複数のオブジェクトを削除することができます。

この操作を行うには、削除するオブジェクトのオブジェクトキーのリストをXML形式でリクエストボディに指定して POST で送付します。それぞれのオブジェクトが削除されたかどうかの結果はレスポンスで確認することができます。
削除の際は、1つ1つのオブジェクトに対して権限(オブジェクトのACLおよびバケットポリシー)を評価します。権限については DELETE Object をご覧ください。

Warning

一度に削除できるオブジェクトの最大件数は1000件です。1000件を超える場合エラー(status:400 , ErrorCode:MalformedXML)を応答します。

リクエスト情報

シンタックス

POST /?delete HTTP/1.1
Host: {bucket name}.storage-dag.iijgio.com
Authorization: {authorization string}
Content-Length: {length}
Content-MD5: {MD5}

<?xml version="1.0" encoding="UTF-8"?>
<Delete>
    <Quiet>true</Quiet>
    <Object>
         <Key>{object key}</Key>
    </Object>
    <Object>
         <Key>{object key}</Key>
    </Object>
    ...
</Delete>

リクエストパラメータ

この操作ではリクエストパラメータを使用しません。

リクエストヘッダー

この操作では基本リクエストヘッダーに加え、以下のヘッダーを使用します。

表. Delete Multiple Objects リクエストヘッダー一覧
HTTPヘッダー 説明 必須
Content-MD5
Base64でエンコードされたRFC 1864に準拠した128ビットMD5のダイジェストメッセージ(ヘッダーは含みません)

送信データの保全チェックに用います。

型:String
デフォルト値:なし
Content-Length
RFC 2616に準拠したリクエストボディのサイズ
型:String
デフォルト値:なし

リクエストエレメント

この操作では以下のリクエストエレメントを使用します。

表. Delete Multiple Objects リクエストエレメント一覧
名前 説明 必須
Delete
リクエストのルート要素となるコンテナ
型:Container
親:なし
Quiet
Quietモード(出力を抑止するモード)を有効にする

この要素を指定する場合は必ずtrueを指定してください。(無効にする場合は無指定)

型:Boolean
デフォルト値:false
親:Delete
×
Object
削除するオブジェクト情報が含まれるコンテナ
型:Container
親:Delete
Key
削除するオブジェクトのオブジェクトキー
型:String
親:Object

レスポンス情報

レスポンスヘッダー

この操作では基本レスポンスヘッダーのみ返します。

レスポンスエレメント

この操作では以下のレスポンスエレメントを返します。

表. Delete Multiple Objects レスポンスエレメント一覧
名前 説明
DeleteResult
レスポンスのルート要素となるコンテナ
型:Container
親:なし
Deleted
削除に成功したオブジェクト情報を含むコンテナ
型:Boolean
デフォルト値:false
親:DeleteResult
Key
削除操作を行ったオブジェクトのオブジェクトキー
型:String
親:Deleted, Error
Error
削除に失敗したオブジェクトの情報とエラー情報を含むコンテナ
型:Container
親:DeleteResult
Code
オブジェクト削除失敗時のエラーコード
型:String
値:AccessDenied, InternalError
親:Error
Message
オブジェクト削除失敗時のエラーメッセージ
型:String
親:Error

エラー情報

この操作は共通のエラーレスポンスを返します。詳しくはエラーコード一覧をご覧ください。

サンプル

複数のオブジェクトを削除するサンプル

リクエスト

2つのオブジェクトを削除するリクエストは以下のようになります。

 POST /?delete HTTP/1.1
 Host: mybucket.storage-dag.iijgio.com
 Accept: */*
 Date: Wed, 1 Oct 2014 00:00:00 GMT
 Content-MD5: CLe6JwkZAD1ei6hp9XZIee==
 Authorization: IIJGIO 15B4D3461F177624206A:xQE0diMbLRepdf3YB+FIEXAMPLE=
 Content-Length: 125
 Connection: Keep-Alive

 <Delete>
   <Object>
     <Key>sample1.txt</Key>
   </Object>
   <Object>
     <Key>sample2.txt</Key>
   </Object>
< /Delete>

レスポンス

1つは削除に成功し、もう1つのオブジェクトは削除するための権限がなくエラーになった場合のレスポンスは以下のようになります。

HTTP/1.1 200 OK
x-iijgio-id-2: eftixk72aD6Ap51TnqcoF8eFidJG9Z/2mkiDFu8yU9AS1ed4OpIszj7UDNEHGran
x-iijgio-request-id: 318BC8BC148832E5
Date: Wed, 1 Oct 2014 00:00:00 GMT
Content-Type: application/xml
Server: storage-dag.iijgio.com
Content-Length: 251

<?xml version="1.0" encoding="UTF-8"?>
<DeleteResult xmlns="http://acs.dag.iijgio.com/doc/2006-03-01/">
  <Deleted>
    <Key>sample1.txt</Key>
  </Deleted>
  <Error>
    <Key>sample2.txt</Key>
    <Code>AccessDenied</Code>
    <Message>Access Denied</Message>
  </Error>
</DeleteResult>

ページ先頭へ