DeleteMultipleObjects 操作では、1 つの HTTP 要求で同じバケット内の複数のオブジェクトを削除できます。

1 つの要求で最大 1,000 のオブジェクトを削除するには、複数のオブジェクトの削除操作で実行できます。 Verbose モードと Quiet モードの 2 つの応答モードがあります。
  • 冗長モード:OSS によって返されるメッセージ本文には、削除された各オブジェクトの結果が含まれます。
  • クワイエットモード:OSS によって返されるメッセージ本文には、DELETE プロセスでエラーが発生したオブジェクトの結果のみが含まれます。 すべてのオブジェクトが正常に削除された場合、メッセージ本文は返されません。

リクエスト構文

  1. POST /? delete HTTP/1.1Host: BucketName.oss-cn-hangzhou.aliyuncs.comDate: GMT DateContent-Length: ContentLengthContent-MD5: MD5ValueAuthorization: SignatureValue<? xml version=”1.0 encoding=”UTF-8”? ><Delete> <Quiet>true</Quiet> <Object> <Key>key</Key> </Object>…</Delete>

リクエストパラメーター

複数のオブジェクトの削除操作中に、エンコードタイプを使用して、返された結果のキーをエンコードすることができます。

名前 説明
encoding-type 返された結果に、Key のエンコーディングタイプを指定します。 現在、URL エンコーディングがサポートされています。 Key は UTF-8 エンコーディングを採用していますが、XML 1.0 Standard は、0 から 10 までの ASCII 値の文字など、特定の制御文字の解析をサポートしていません。Key に XML 1.0 標準でサポートされていない制御文字が含まれている場合、 返された Key を符号化するための符号化タイプを指定できます。

型: String

デフォルト:なし

オプション値: url

リクエスト要素

名前 説明
Delete Container 複数のオブジェクトの削除要求を保存するコンテナを指定します。

サブノード: 1 つ以上のオブジェクト要素とオプションの静かな要素

親ノード:なし

Key String 削除されたオブジェクトの名前を指定します。 

親ノード: Object

Object Container オブジェクトに関する情報を保存するコンテナを指定します。

サブノード: key

親ノード: Delete

Quiet enumerative string 「クワイエット」レスポンスモードを有効にします。

有効な値: true, false

デフォルト: false

親ノード: Delete

レスポンス要素

名前 説明
Deleted Container 正常に削除されたオブジェクトを保存するコンテナを指定します。 

サブノード: key

親ノード: DeleteResult

DeleteResult Container 複数オブジェクトの削除要求の結果を保存するコンテナを指定します。 

サブノード: Deleted

親ノード: None

Key String OSS が削除操作を実行するオブジェクトの名前を指定します。

親ノード: Deleted

EncodingType String 戻り値の結果でエンコーディングによって使用される型を示します。 返される結果のエンコーディングタイプを指定します。 要求に encoding-type が指定されている場合、Key は返された結果にエンコードされます。

親ノード: Container

詳細分析

  • Content-Length フィールドと Content-MD5 フィールドは、Delete Multiple Objects 要求で指定する必要があります。 OSS は、削除操作を実行する前に、受信したメッセージ本文が 2 つのフィールドに基づいて正しいことを確認します。
  • Content-MD5 フィールドを生成する方法:Delete Multiple Objects 要求の MD5 値を暗号化して 128 バイトの配列を取得し、Base64 を使用して配列をエンコードします。 取得される最後の文字列は、Content-MD5 フィールドの内容です。
  • Delete Multiple Objects 要求の戻りモードは、デフォルトで Verbose です。
  • 存在しないオブジェクトを削除するために複数のオブジェクトの削除要求が使用された場合、その操作は依然として成功とみなされます。
  • 複数のオブジェクトの削除要求には、最大 2 MB のメッセージ本文を含めることができます。 メッセージ本文のサイズが 2 MB を超えると、MalformedXML エラーコードが返されます。
  • 複数のオブジェクトの削除要求を使用すると、一度に 1,000 個までのオブジェクトを削除できます。 一度に削除するオブジェクトの数が 1,000 を超えると、システムは MalformedXML エラーコードを返します。
  • Content-MD5 リクエストヘッダーをアップロードした場合、OSS は本文の Content-MD5 を計算し、その 2 つが一致しているかどうかを確認します。 2 つが異なる場合、エラーコード InvalidDigest が返されます。

リクエスト例 I:

  1. POST /? delete HTTP/1.1Host: oss-example.oss-cn-hangzhou.aliyuncs.comDate: Wed, 29 Feb 2012 12:26:16 GMTContent-Length:151Content-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>

レスポンス例 :

  1. HTTP/1.1 200 OKx-oss-request-id: 78320852-7eee-b697-75e1-b6db0f4849e7Date: Wed, 29 Feb 2012 12:26:16 GMTContent-Length: 244Content-Type: application/xmlConnection: keep-aliveServer: AliyunOSS<? xml version=”1.0 encoding=”UTF-8”? ><DeleteResult xmlns=”http://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:

  1. POST /? delete HTTP/1.1Host: oss-example.oss-cn-hangzhou.aliyuncs.comDate: Wed, 29 Feb 2012 12:33:45 GMTContent-Length:151Content-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>

レスポンス例 :

  1. HTTP/1.1 200 OKx-oss-request-id: 559CC9BDC755F95A64485981Date: Wed, 29 Feb 2012 12:33:45 GMTContent-Length: 0Connection: keep-aliveServer: AliyunOSS