Supprime plusieurs objets d'un compartiment en une seule requête.
Remarques sur l'utilisation
Une seule requête DeleteMultipleObjects peut supprimer jusqu'à 1 000 objets.
Si la réplication des données est configurée avec l'option Sync Additions, Deletions, And Modifications, DeleteMultipleObjects supprime également les objets correspondants dans le compartiment de destination. Les objets supprimés ne peuvent pas être récupérés. Lorsque le versioning est activé, DeleteMultipleObjects crée un marqueur de suppression pour chaque objet ; cette action est répliquée vers le compartiment de destination.
Les objets supprimés ne peuvent pas être récupérés. Procédez avec prudence. Pour plus d'informations sur la suppression d'objets, consultez la rubrique Suppression d'objets.
Versioning
Dans un compartiment pour lequel le versioning est activé, DeleteMultipleObjects insère un marqueur de suppression lorsqu'aucun ID de version n'est spécifié. Si un ID de version est indiqué, cette version est définitivement supprimée.
Autorisations
Par défaut, un compte Alibaba Cloud dispose de toutes les autorisations. Les utilisateurs RAM ou les rôles RAM associés à un compte Alibaba Cloud ne disposent d'aucune autorisation par défaut. Le compte Alibaba Cloud ou l'administrateur du compte doit accorder les autorisations d'opération via des stratégies RAM ou une stratégie de compartiment.
|
API |
Action |
Description |
|
DeleteMultipleObjects |
oss:DeleteObject |
Supprime plusieurs objets d'un compartiment. |
Syntaxe de la requête
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>
En-têtes de requête
OSS utilise ces en-têtes pour vérifier le corps du message avant d'exécuter l'opération de suppression.
|
Nom |
Type |
Obligatoire |
Exemple |
Description |
|
Encoding-type |
String |
Non |
url2 |
La méthode d'encodage des clés d'objet. Si une clé contient des caractères de contrôle non pris en charge par XML 1.0, définissez ce paramètre sur url2. OSS encode alors l'URL du champ Key dans la réponse. Valeur par défaut : none Valeur valide : url2 |
|
Content-Length |
String |
Oui |
151 |
La longueur du corps du message HTTP. OSS vérifie le corps par rapport à cette valeur avant la suppression. |
|
Content-MD5 |
String |
Oui |
ohhnqLBJFiKkPSBO1eNaUA== |
Le hachage MD5 encodé en Base64 du corps du message. OSS calcule et compare cette valeur pour vérifier l'intégrité. Remarque
Pour calculer cette valeur : calculez le hachage MD5 du corps de la requête afin d'obtenir un tableau d'octets de 128 bits, puis encodez-le en Base64. |
Éléments de requête
|
Nom |
Type |
Obligatoire |
Exemple |
Description |
|
Delete |
Container |
Oui |
N/A |
Le conteneur pour la requête DeleteMultipleObjects. Nœuds enfants : un ou plusieurs éléments Object et l'élément Quiet Nœud parent : aucun |
|
Object |
Container |
Oui |
N/A |
Le conteneur contenant les informations relatives à un objet. Nœud enfant : Key Nœud parent : Delete |
|
Key |
String |
Oui |
test.jpg |
Le nom de l'objet à supprimer. Nœud parent : Object |
|
Quiet |
Enumeration string |
Non |
false |
Contrôle le mode de réponse. Modes de réponse disponibles :
Valeurs valides : true (active le mode simple) et false (active le mode détaillé) Valeur par défaut : false Nœud parent : Delete |
|
VersionId |
String |
Non |
CAEQNRiBgIDyz.6C0BYiIGQ2NWEwNmVhNTA3ZTQ3MzM5ODliYjM1ZTdjYjA4**** |
Le numéro de version de l'objet à supprimer. Nœud parent : Object |
Éléments de réponse
|
Nom |
Type |
Exemple |
Description |
|
DeleteResult |
Container |
N/A |
Le conteneur pour le résultat de la requête DeleteMultipleObjects. Nœud enfant : Deleted Nœud parent : aucun |
|
Deleted |
Container |
N/A |
Le conteneur pour chaque objet supprimé avec succès. Important
L'élément Deleted répertorie uniquement les objets supprimés avec succès. Comparez la liste de la requête avec la réponse pour identifier les échecs. Nœud enfant : Key Nœud parent : DeleteResult |
|
Key |
String |
demo.jpg |
Le nom de l'objet supprimé. Nœud parent : Deleted |
|
VersionId |
String |
version_20211101141621_d137 |
L'ID de version. Nœud parent : Deleted |
|
DeleteMarker |
Boolean |
true |
Indique si la version supprimée est un marqueur de suppression. Valeurs valides : true et false. Remarque
Renvoyé comme true uniquement lorsqu'un marqueur de suppression est créé ou définitivement supprimé. Nœud parent : Deleted |
|
DeleteMarkerVersionId |
String |
THUQNRiBgICEoPiC0BYiIGMxZWJmYmMzYjE0OTQ0ZmZhYjgzNzkzYjc2NjZk**** |
L'ID de version du marqueur de suppression. Nœud parent : Deleted |
|
EncodingType |
String |
url2 |
Le type d'encodage des noms d'objets dans la réponse. Renvoyé uniquement lorsque Encoding-type est spécifié dans la requête. Nœud parent : DeleteResult |
Exemples
-
Exemple de requête avec le mode de réponse simple désactivé
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: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e <?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>Exemple de réponse
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=”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> -
Exemple de requête avec le mode de réponse simple activé
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: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e <?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>Exemple de réponse
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 -
Exemple de requête sans ID de version
POST /?delete HTTP/1.1 Host: oss-example.oss-cn-hangzhou.aliyuncs.com Date: Tue, 09 Apr 2019 04:20:03 GMT Content-MD5: xSLOYWaPC86RPwWXNiFeXg== Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e <?xml version="1.0" encoding="UTF-8"?> <Delete> <Quiet>false</Quiet> <Object> <Key>multipart.data</Key> </Object> <Object> <Key>test.jpg</Key> </Object> </Delete>Exemple de réponse
Étant donné qu'aucun ID de version n'est spécifié, OSS insère des marqueurs de suppression pour les deux objets et renvoie <DeleteMarker>true</DeleteMarker> et <DeleteMarkerVersionId>XXXXXX</DeleteMarkerVersionId>.
HTTP/1.1 200 OK x-oss-request-id: 5CAC1D73B7AEADE01700**** Date: Tue, 09 Apr 2019 04:20:03 GMT Content-Type: application/xml Connection: keep-alive Server: 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> </Deleted> </DeleteResult> -
Exemple de requête avec un ID de version
RemarqueVous devez spécifier à la fois Key et VersionId.
POST /?delete HTTP/1.1 Host: oss-example.oss-cn-hangzhou.aliyuncs.com Date: Tue, 09 Apr 2019 06:09:34 GMT Content-Length:151 Content-MD5: 2Tpk+dL/tGyuSA+YCEuSVg== Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e <?xml version="1.0" encoding="UTF-8"?> <Delete> <Quiet>false</Quiet> <Object> <Key>multipart.data</Key> <VersionId>CAEQNRiBgIDyz.6C0BYiIGQ2NWEwNmVhNTA3ZTQ3MzM5ODliYjM1ZTdjYjA4****</VersionId> </Object> </Delete>Exemple de réponse
L'exemple suivant montre que la clé et l'ID de version de l'objet supprimé sont renvoyés.
HTTP/1.1 200 OK x-oss-request-id: 5CAC371EB7AEADE01700**** Date: Tue, 09 Apr 2019 06:09:34 GMT Content-Length: 244 Content-Type: application/xml Connection: keep-alive Server: 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> </Deleted> </DeleteResult> -
Exemple de requête pour supprimer un marqueur de suppression en spécifiant un ID de version
POST /?delete HTTP/1.1 Host: oss-example.oss-cn-hangzhou.aliyuncs.com Date: Tue, 09 Apr 2019 06:14:50 GMT Content-Length: 178 Content-MD5: dX9IFePFgYhmINvAhG30Bg== Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e <?xml version="1.0" encoding="UTF-8"?> <Delete> <Quiet>false</Quiet> <Object> <Key>multipart.data</Key> <VersionId>CAEQNRiBgICEoPiC0BYiIGMxZWJmYmMzYjE0OTQ0ZmZhYjgzNzkzYjc2NjZk****</VersionId> </Object> </Delete>Exemple de réponse
Key et VersionId identifient l'objet supprimé.
Les éléments DeleteMarker et DeleteMarkerVersionId confirment que l'élément supprimé est un marqueur de suppression. Dans ce cas, VersionId et DeleteMarkerVersionId ont la même valeur.
HTTP/1.1 200 OK x-oss-request-id: 5CAC385AB7AEADE01700**** Date: Tue, 09 Apr 2019 06:14:50 GMT Content-Length: 364 Content-Type: application/xml Connection: keep-alive Server: 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> </Deleted> </DeleteResult>
SDK
Vous pouvez appeler DeleteMultipleObjects à l'aide des SDK suivants :
Outil de ligne de commande ossutil
La commande ossutil correspondante est delete-multiple-objects.
Références
Pour supprimer un seul objet, utilisez DeleteObject.
Pour obtenir des informations sur la suppression automatique d'objets, consultez la rubrique Cycle de vie.
Codes d'erreur
|
Code d'erreur |
Code d'état HTTP |
Description |
|
InvalidDigest |
400 |
La valeur Content-MD5 calculée par OSS ne correspond pas à la valeur de l'en-tête de requête Content-MD5. |
|
MalformedXML |
400 |
|
|
FileImmutable |
409 |
Le compartiment est protégé par une stratégie de rétention. Les données protégées ne peuvent pas être supprimées ni modifiées. |