バケットから複数のオブジェクトを削除します。
DeleteMultipleObjects操作を呼び出すと、最大1,000個のオブジェクトを削除できます。
削除したオブジェクトを元に戻すことはできません。 作業は慎重に行ってください。 オブジェクトを削除する方法の詳細については、「オブジェクトの削除」をご参照ください。
バージョン管理
DeleteMultipleObjects操作を呼び出して、バージョン管理されたバケットから複数のオブジェクトを削除できます。 リクエストで削除するオブジェクトのバージョンIDを指定しない場合、削除マーカーがオブジェクトに追加されます。 リクエストで削除するオブジェクトのバージョンIDを指定すると、指定されたオブジェクトバージョンは完全に削除されます。
リクエスト構文
POST /? 削除HTTP/1.1
ホスト: BucketName.oss-cn-hangzhou.aliyuncs.com
日付: GMT日付
Content-Length: ContentLength
Content-MD5: MD5Value
権限付与: SignatureValue
<?xml version="1.0" encoding="UTF-8"?>
<削除>
<Quiet>true</Quiet>
<Object>
<Key>key</Key>
</オブジェクト>
...
</削除>
リクエストヘッダー
Object Storage Service (OSS) は、次のヘッダーに基づいてDeleteMultipleObjectsリクエストの本文を検証し、検証が成功した場合にのみ指定されたオブジェクトを削除します。
ヘッダー | データ型 | 必須 | 例 | 説明 |
エンコーディングタイプ | String | 任意 | url | レスポンス内のオブジェクト名のエンコードタイプ。 Key要素の値はエンコードされUTF-8。 XML 1.0標準でサポートされていないコントロール文字がKey要素に含まれている場合は、このヘッダーを指定して、応答のKey要素の値をエンコードできます。 デフォルトでは、このヘッダーは空のままです。 有効な値:url |
コンテンツ長 | String | 必須 | 151 | HTTPメッセージ本文の長さ。 OSSはこのヘッダーを使用してリクエストのメッセージ本文を確認し、メッセージ本文の長さがこのヘッダーの値と同じである場合にのみ、指定されたオブジェクトを削除します。 |
コンテンツ-MD5 | String | 必須 | ohhnqLBJFiKkPSBO1eNaUA== | MD5アルゴリズムを使用して計算されたMD5ハッシュ。 このヘッダは、受信されたメッセージの内容が送信されたメッセージの内容と同じであるかどうかをチェックするために使用される。 リクエストでContent-MD5ヘッダーを指定すると、OSSはメッセージ本文に基づいてMD5ハッシュを計算し、計算されたMD5ハッシュがリクエストで指定されたContent-MD5値と同じかどうかを確認します。 説明 Content-MD5ヘッダーの値を取得するには、MD5アルゴリズムを使用してDeleteMultipleObjectsリクエストのメッセージ本文を暗号化して128ビットのバイト配列を取得し、Base64でバイト配列をエンコードします。 |
リクエスト要素
要素 | データ型 | 必須 | 例 | 説明 |
削除 | Container | 必須 | N/A | DeleteMultipleObjectsリクエストのコンテンツを格納するコンテナー。 子ノード: オブジェクトとクワイエット 親ノード: なし |
オブジェクト | Container | 必須 | N/A | オブジェクトに関する情報を格納するコンテナー。 子ノード: キー 親ノード: 削除 |
キー | String | 必須 | test.jpg | 削除するオブジェクトの名前。 親ノード: オブジェクト |
静かな | Enumerated string | 必須 | false | Quietリターンモードを有効にするかどうかを指定します。 DeleteMultipleObjects操作は、次の戻りモードを提供します。
有効な値:true と false デフォルト値: "false" 親ノード: 削除 |
VersionId | String | 任意 | CAEQNRiBgIDyz.6C0BYiIGQ2NWEwNmVhNTA3ZTQ3MzM5ODliYjM1ZTdjYjA4 **** | 削除するオブジェクトのバージョンID。 親ノード: オブジェクト |
レスポンス要素
要素 | データ型 | 例 | 説明 |
削除済み | Container | N/A | 削除されたオブジェクトに関する情報を格納するコンテナー。 重要 Deleted応答要素には、削除されたオブジェクトに関する情報のみが含まれ、削除に失敗したオブジェクトに関する情報は含まれません。 DeleteMultipleObjects操作で削除に失敗したオブジェクトの名前を取得するには、リクエストのDeleteヘッダーの値とレスポンスのdeletedヘッダーの値を比較します。 子ノード: キー 親ノード: DeleteResult |
DeleteResult | Container | N/A | DeleteMultipleObjectsリクエストの結果を格納するコンテナー。 子ノード: 削除済み 親ノード: なし |
キー | String | demo.jpg | 削除されたオブジェクトの名前。 親ノード: 削除済み |
EncodingType | String | url | レスポンスで削除されたオブジェクトの名前のエンコードタイプ。 リクエストでencoding-typeが指定されている場合、返される結果でオブジェクト名がエンコードされます。 親ノード: コンテナ |
DeleteMarker | Boolean | true | 削除されたバージョンが削除マーカーかどうかを示します。 true: 削除されたバージョンは削除マーカーです。 false:指定されたバージョンは削除マーカーではありません。 説明 DeleteMarker要素は、DeleteMultipleObjects操作が削除マーカーの作成または永久削除を含む場合にのみ、応答に含まれます。 |
DeleteMarkerVersionId | String | THUQNRiBgICEoPiC0BYiIGMxZWJmYmMzYjE0OTQ0ZmZhYjgzNzkzYjc2NjZk **** | 削除マーカーのバージョンID。 親ノード: 削除済み |
例
Quietモードが無効になっているサンプルリクエスト
POST /? 削除HTTP/1.1 ホスト: oss-example.oss-cn-hangzhou.aliyuncs.com 日付: 2月29日水2012 12:26:16 GMT コンテンツ-長さ: 151 Content-MD5: ohhnqLBJFiKkPSBO1eNaUA== 権限付与: OSS qn6qrrqxo2oawuk53otfjbyc:+ z3gBfnFAxBcBDgx27Y/jEfb **** <?xml version="1.0" encoding="UTF-8"?> <削除> <Quiet>false</Quiet> <Object> <Key>multipart.data</Key> </Object> <Object> <Key>test.jpg</Key> </Object> <Object> <Key>demo.jpg</Key> </オブジェクト> </削除>
レスポンスの例
HTTP/1.1 200 OK x-oss-request-id: 78320852-7eee-b697-75e1-b6db0f4849e7 日付: 2月29日水2012 12:26:16 GMT コンテンツ-長さ: 244 Content-Type: application/xml 接続: キープアライブ サーバー: 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> </削除済み> </DeleteResult>
Quietモードが有効になっているサンプルリクエスト
POST /? 削除HTTP/1.1 ホスト: oss-example.oss-cn-hangzhou.aliyuncs.com 日付: 2月29日水2012 12:33:45 GMT コンテンツ-長さ: 151 Content-MD5: ohhnqLBJFiKkPSBO1eNaUA== 権限付与: OSS qn6qrrqxo2oawuk53otfjbyc:WuV0Jks8RyGSNQrBca64kEEx **** <?xml version="1.0" encoding="UTF-8"?> <削除> <Quiet>true</Quiet> <Object> <Key>multipart.data</Key> </Object> <Object> <Key>test.jpg</Key> </Object> <Object> <Key>demo.jpg</Key> </オブジェクト> </削除>
レスポンスの例
HTTP/1.1 200 OK x-oss-request-id: 559CC9BDC755F95A64485981 日付: 2月29日水2012 12:33:45 GMT コンテンツ長: 0 接続: キープアライブ サーバー: AliyunOSS
バージョンIDが指定されていないサンプルリクエスト
POST /? 削除HTTP/1.1 ホスト: oss-example.oss-cn-hangzhou.aliyuncs.com 日付: 4月2019日火曜日04:20:03 GMT Content-MD5: xSLOYWaPC86RPwWXNiFeXg== 権限付与: OSS xq39jyxyrddzvvh:/G5kxMIw1ilMQjPp2HkJEp5q **** <?xml version="1.0" encoding="UTF-8"?> <削除> <Quiet>false</Quiet> <Object> <Key>multipart.data</Key> </Object> <Object> <Key>test.jpg</Key> </オブジェクト> </削除>
レスポンスの例
次の例では、削除する2つのオブジェクト (multipart.datとtest.jpg) のバージョンIDは指定されていません。 したがって、OSSは2つのオブジェクトに削除マーカーを追加し、<DeleteMarker>true</DeleteMarker> と <DeleteMarkerVersionId>XXXXXX</DeleteMarkerVersionId> を返します。
HTTP/1.1 200 OK x-oss-request-id: 5CAC1D73B7AEADE01700 **** 日付: 4月2019日火曜日04:20:03 GMT Content-Type: application/xml 接続: キープアライブ サーバー: AliyunOSS <?xml version="1.0" encoding="UTF-8"?> <DeleteResult> <Deleted> <Key>multipart.data</Key> <DeleteMarker>true</DeleteMarker> <DeleteMarkerVersionId>CAEQMhiBgIDXiaaB0BYiIGQzYmRkZGUxMTM1ZDRjOTZhNjk4YjRjMTAyZjhl****</DeleteMarkerVersionId> </Deleted> <Deleted> <Key>test.jpg</Key> <DeleteMarker>true</DeleteMarker> <DeleteMarkerVersionId>CAEQMhiBgIDB3aWB0BYiIGUzYTA3YzliMzVmNzRkZGM5NjllYTVlMjYyYWEy****</DeleteMarkerVersionId> </削除済み> </DeleteResult>
バージョンIDを指定したサンプルリクエスト
説明Key要素とVersionId要素の両方を指定する必要があります。
POST /? 削除HTTP/1.1 ホスト: oss-example.oss-cn-hangzhou.aliyuncs.com 日付: 4月2019日火曜日06:09:34 GMT コンテンツ-長さ: 151 Content-MD5: 2Tpk + dL/tGyuSA + YCEuSVg== 承認: OSS qac50zy2vbvbq4z:/pingCxyqfxc0 + 50Bfi2SX9c **** <?xml version="1.0" encoding="UTF-8"?> <削除> <Quiet>false</Quiet> <Object> <Key>multipart.data</Key> <VersionId>CAEQNRiBgIDyz.6C0BYiIGQ2NWEwNmVhNTA3ZTQ3MzM5ODliYjM1ZTdjYjA4****</VersionId> </オブジェクト> </削除>
レスポンスの例
この例では、削除されたオブジェクトのキーとバージョンIDが返されます。
HTTP/1.1 200 OK x-oss-request-id: 5CAC371EB7AEADE01700 **** 日付: 4月2019日火曜日06:09:34 GMT コンテンツ-長さ: 244 Content-Type: application/xml 接続: キープアライブ サーバー: AliyunOSS <?xml version="1.0" encoding="UTF-8"?> <DeleteResult xmlns="http://doc.oss-cn-hangzhou.aliyuncs.com"> <Deleted> <Key>multipart.data</Key> <VersionId>CAEQNRiBgIDyz.6C0BYiIGQ2NWEwNmVhNTA3ZTQ3MzM5ODliYjM1ZTdjYjA4****</VersionId> </削除済み> </DeleteResult>
versionId要素を指定して削除マーカーを削除するサンプルリクエスト
POST /? 削除HTTP/1.1 ホスト: oss-example.oss-cn-hangzhou.aliyuncs.com 日付: 4月2019日火曜日06:14:50 GMT コンテンツ-長さ: 178 Content-MD5: dX9IFePFgYhmINvAhG30Bg== 承認: OSS 9dfwrokza5gf1p7:iyl6IU6TcfFXcu5p0ds5dUdo **** <?xml version="1.0" encoding="UTF-8"?> <削除> <Quiet>false</Quiet> <Object> <Key>multipart.data</Key> <VersionId>CAEQNRiBgICEoPiC0BYiIGMxZWJmYmMzYjE0OTQ0ZmZhYjgzNzkzYjc2NjZk****</VersionId> </オブジェクト> </削除>
レスポンスの例
Key要素は削除されたオブジェクトの名前を示し、VersionId要素はオブジェクトの削除されたバージョンを示します。
DeleteMarkerは、削除マーカーが削除されることを示します。 DeleteMarkerVersionIdは、削除マーカーのバージョンIDを示します。 この場合、VersionId と DeleteMarkerVersionId の値は同じで、DeleteMarker と DeleteMarkerVersionId は一緒に返されます。
HTTP/1.1 200 OK x-oss-request-id: 5CAC385AB7AEADE01700 **** 日付: 4月2019日火曜日06:14:50 GMT コンテンツ-長さ: 364 Content-Type: application/xml 接続: キープアライブ サーバー: AliyunOSS <?xml version="1.0" encoding="UTF-8"?> <DeleteResult xmlns="http://doc.oss-cn-hangzhou.aliyuncs.com"> <Deleted> <Key>demo.jpg</Key> <VersionId>CAEQNRiBgICEoPiC0BYiIGMxZWJmYmMzYjE0OTQ0ZmZhYjgzNzkzYjc2NjZk****</VersionId> <DeleteMarker>true</DeleteMarker> <DeleteMarkerVersionId>THUQNRiBgICEoPiC0BYiIGMxZWJmYmMzYjE0OTQ0ZmZhYjgzNzkzYjc2NjZk ****</DeleteMarkerVersionId> </削除済み> </DeleteResult>
SDK
次のプログラミング言語のOSS SDKを使用して、DeleteMultipleObjects操作を呼び出すことができます。
参考資料
単一のオブジェクトを削除するために呼び出すことができるAPI操作の詳細については、「DeleteObject」をご参照ください。
オブジェクトを自動的に削除する方法については、「概要」をご参照ください。
エラーコード
エラーコード | HTTPステータスコード | 説明 |
InvalidDigest | 400 | メッセージ本文に基づいてOSSによって計算されるContent-MD5値は、リクエストヘッダーに指定されているContent-MD5値とは異なります。 |
MalformedXML | 400 |
|
FileImmutable | 409 | 削除または変更するデータは、保持ポリシーによって保護されます。 |