Cette rubrique explique comment exécuter la commande rm pour supprimer les objets, les parties ou les buckets dont vous n'avez plus besoin et éviter des frais inutiles.
Notes d'utilisation
Pour supprimer un objet unique, l'autorisation
oss:DeleteObjectest requise. Pour supprimer tous les objets d'un répertoire, vous devez disposer des autorisationsoss:DeleteObjectetoss:ListObjects. Pour supprimer une version spécifique d'un objet, l'autorisationoss:DeleteObjectVersionest nécessaire. Pour supprimer toutes les versions d'objets dans un bucket, vous devez disposer des autorisationsoss:ListObjectVersionsetoss:DeleteObjectVersion. Pour supprimer toutes les versions d'objets dans un répertoire, les autorisationsoss:DeleteObjectVersionetoss:ListObjectssont obligatoires. Pour supprimer les parties d'un objet, vous devez disposer des autorisationsoss:ListMultipartUploadsetoss:AbortMultipartUpload. Pour supprimer tous les objets et toutes les parties d'un bucket, vous devez disposer des autorisationsoss:ListMultipartUploads,oss:AbortMultipartUpload,oss:ListObjectsetoss:DeleteObject. Enfin, pour supprimer un bucket, l'autorisationoss:DeleteBucketest requise.À partir de la version 1.6.16 d'ossutil, utilisez directement
ossutilcomme nom binaire dans la ligne de commande. Il n'est plus nécessaire d'adapter le nom binaire en fonction du système d'exploitation. Pour les versions antérieures à 1.6.16, cette adaptation reste nécessaire. Pour plus d'informations, consultez la page Référence des commandes ossutil.
Syntaxe de la commande
ossutil rm oss://bucketname[/prefix]
[-r, --recursive]
[-b, --bucket]
[-m, --multipart]
[-a, --all-type]
[-f, --force]
[--include <value>]
[--exclude <value>]
[--version-id <value>]
[--all-versions]
[--payer <value>]
[--encoding-type <value>]
Le tableau suivant décrit les paramètres et les options de la syntaxe.
|
Paramètre/Option |
Description |
|
bucketname |
Nom du bucket. |
|
prefix |
Préfixe utilisé dans les noms des ressources, tels que les répertoires et les objets. |
|
-r, --recursive |
Si vous spécifiez cette option, ossutil supprime tous les objets dont le nom contient le préfixe indiqué du bucket. Sans cette option, seuls les objets spécifiés sont supprimés. |
|
-b, --bucket |
Indique que la commande doit supprimer le bucket. Cette option est obligatoire uniquement lors de la suppression d'un bucket. |
|
-m, --multipart |
Spécifie que l'opération s'applique aux tâches de chargement multipartie incomplet dans le bucket. |
|
-a, --all-type |
Indique que l'opération s'applique aux objets dont le nom contient le préfixe spécifié, ainsi qu'aux données issues des tâches de chargement multipartie incomplet dans le bucket. |
|
-f, --force |
Force l'exécution de l'opération sans demander de confirmation. |
|
--include |
Inclut tous les objets qui répondent aux conditions spécifiées. Pour plus d'informations, consultez la section Options --include et --exclude. |
|
--exclude |
Exclut tous les objets qui répondent aux conditions spécifiées. Pour plus d'informations, consultez la section Options --include et --exclude. |
|
--version-id |
ID de version de l'objet. Ce paramètre s'applique uniquement aux buckets pour lesquels le contrôle de version est activé ou suspendu. |
|
--all-versions |
Spécifie toutes les versions des objets. Cette option s'applique uniquement aux objets situés dans des buckets dont le contrôle de version est activé ou suspendu. Vous ne pouvez spécifier qu'une seule des options --version-id et --all-versions dans une seule commande rm. |
|
--payer |
Partie responsable du paiement des frais générés par l'opération. Si vous souhaitez que le demandeur accédant aux ressources du chemin spécifié prenne en charge les frais (trafic et requêtes), définissez ce paramètre sur requester. |
|
--encoding-type |
Encodage du préfixe suivant |
Supprimer des objets
Les objets supprimés ne peuvent pas être récupérés. Faites preuve de prudence lors de cette opération.
Lorsque vous utilisez la commande rm avec ou sans l'option -r pour supprimer un ou plusieurs objets, les opérations ListObjects (GetBucket) et DeleteObject sont appelées. Dans ce cas, des frais vous sont facturés pour l'envoi de requêtes PUT. Pour plus d'informations, consultez la section Frais de requête.
L'utilisation conjointe des options --include et --exclude dans une commande rm peut entraîner des suppressions accidentelles si les conditions sont mal configurées. Nous vous recommandons d'être particulièrement vigilant lorsque vous combinez ces deux options.
Vous pouvez spécifier plusieurs conditions dans les options --include et --exclude. Toutes les conditions sont appliquées de gauche à droite pour faire correspondre les objets. Si vous spécifiez plusieurs conditions, il est recommandé de placer l'option --include avant l'option --exclude.
-
Exemples
-
Supprimer un objet unique
Supprimez un objet nommé exampleobject.txt d'un bucket nommé examplebucket.
ossutil rm oss://examplebucket/exampleobject.txt -
Supprimez tous les objets dont le nom contient le préfixe « test » d'un bucket nommé examplebucket.
ossutil rm oss://examplebucket/test -r -
Supprimez tous les objets dont le nom se termine par le suffixe « .png » d'un bucket nommé examplebucket.
ossutil rm oss://examplebucket --include "*.png" -r -
Supprimez les objets dont le nom contient la chaîne « abc » mais ne contient pas les suffixes « .jpg » ou « .txt » d'un bucket nommé examplebucket.
ossutil rm oss://examplebucket --include "*abc*" --exclude "*.jpg" --exclude "*.txt" -r -
Supprimez une version spécifique d'un objet nommé exampleobject.txt d'un bucket nommé examplebucket, pour lequel le contrôle de version est activé.
ossutil rm oss://examplebucket/exampleobject.txt --version-id CAEQARiBgID8rumR2hYiIGUyOTAyZGY2MzU5MjQ5ZjlhYzQzZjNlYTAyZDE3****Pour savoir comment obtenir toutes les versions d'un objet, consultez la page ls.
-
Supprimez toutes les versions d'un objet nommé exampleobject.txt d'un bucket nommé examplebucket, pour lequel le contrôle de version est activé.
ossutil rm oss://examplebucket/exampleobject.txt --all-versions -
Supprimez toutes les versions de tous les objets d'un bucket nommé examplebucket, pour lequel le contrôle de version est activé.
ossutil rm oss://examplebucket --all-versions -r
RemarqueSi un nom d'objet contient des caractères de contrôle, tels que SOH (0x01), BS (0x08) ou DEL (0x7F), l'exécution de
ossutil rmsans l'option--encoding-typeéchoue à faire correspondre l'objet, car le nom n'est pas analysé correctement. De même, l'exécution deossutil lssans--encoding-typen'affiche pas ces caractères de contrôle, ce qui donne l'impression que l'objet est manquant alors qu'il existe toujours dans le bucket. Spécifiez--encoding-type urlpour qu'ossutil affiche et fasse correspondre correctement les noms d'objets contenant des caractères de contrôle. -
-
Sortie exemple
Une réponse réussie inclut le nombre d'objets supprimés et le temps nécessaire pour terminer l'opération de suppression :
Succeed: Total 8 objects. Removed 8 objects. 0.106852(s) elapsed
Supprimer des parties
Lorsque vous utilisez la commande rm avec plusieurs options pour supprimer des parties, les opérations ListMultipartUploads, ListParts et AbortMultipartUpload sont appelées. Dans ce cas, des frais vous sont facturés pour l'envoi de requêtes GET lors des appels à ListMultipartUploads et ListParts, ainsi que pour l'envoi de requêtes PUT lors de l'appel à AbortMultipartUpload. Pour plus d'informations, consultez la section Frais de requête.
-
Exemples
-
Spécifiez l'option -m dans la commande pour supprimer les parties générées par les tâches de chargement multipartie incomplet d'un objet nommé exampleobject.txt, situé dans un bucket nommé examplebucket.
ossutil rm -m oss://examplebucket/exampleobject.txt -
Spécifiez les options -m et -r dans la commande pour supprimer de manière récursive les parties générées par les tâches de chargement multipartie incomplet des objets dont le nom contient le préfixe « test », situés dans un bucket nommé examplebucket.
ossutil rm -m oss://examplebucket/test -r Do you really mean to remove recursively multipart uploadIds of oss://examplebucket/test(y or N)? y -
Spécifiez les options -a et -r dans la commande pour supprimer de manière récursive les objets dont le nom contient le préfixe « src », ainsi que les parties générées par les tâches de chargement multipartie incomplet de ces objets, situés dans un bucket nommé examplebucket.
ossutil rm oss://examplebucket/src -a -r Do you really mean to remove recursively objects and multipart uploadIds of oss://examplebucket/src(y or N)? y
-
-
Réponse exemple
Une réponse réussie inclut le nombre d'objets supprimés, le nombre de tâches de chargement multipartie ayant généré les parties supprimées, ainsi que le temps nécessaire pour terminer l'opération de suppression :
Succeed: Total 1 objects, 3 uploadIds. Removed 1 objects, 3 uploadIds. 1.922915(s) elapsed
Supprimer des buckets
-
Supprimez le bucket examplebucket, qui ne contient ni objets ni parties.
ossutil rm oss://examplebucket -b Do you really mean to remove the Bucket: examplebucket(y or N)? yUne réponse réussie inclut le nom du bucket supprimé et le temps nécessaire pour effectuer la suppression :
Removed Bucket: examplebucket 2.230745(s) elapsed -
Supprimez un bucket nommé examplebucket, ainsi que tous les objets et parties qu'il contient.
AvertissementL'exécution de la commande suivante entraîne la suppression de toutes les données du bucket. Ces données ne pourront pas être récupérées. Faites preuve de prudence lors de cette opération.
ossutil rm oss://examplebucket -b -a -r Do you really mean to remove recursively objects and multipart uploadIds of oss://examplebucket(y or N)? y Do you really mean to remove the Bucket: examplebucket(y or N)? yUne réponse réussie inclut le nombre d'objets supprimés, le nombre de tâches de chargement multipartie ayant généré les parties supprimées, le nom du bucket supprimé et le temps nécessaire pour terminer l'opération de suppression :
Succeed: Total 189 objects, 37 uploadIds. Removed 189 objects, 37 uploadIds. Removed Bucket: examplebucket 9.184193(s) elapsed
Dépannage
Si ossutil rm -b -a -r échoue parce que le bucket contient des objets dont les noms incluent des caractères de contrôle, tels que SOH (0x01), BS (0x08) ou DEL (0x7F), utilisez le flux de travail alternatif suivant pour supprimer le bucket :
-
Listez les objets du bucket en encodant les noms d'objets au format URL afin de rendre les caractères de contrôle visibles :
ossutil api list-objects --bucket <bucket_name> --encoding-type url --output-format json -
Utilisez les noms d'objets encodés pour construire un corps de requête de suppression, puis supprimez les objets par lot :
ossutil api delete-multiple-objects --bucket <bucket_name> --encoding-type url2 --delete file://delete-objects.xml -
Supprimez le bucket désormais vide :
ossutil rb oss://<bucket_name>
Dans ossutil 2.x, l'option -b n'est plus prise en charge pour la suppression d'un bucket. Utilisez la commande rb à la place de rm -b.
Un octet NUL (0x00) ne peut pas être inclus dans une clé d'objet. Si vous tentez de créer un objet dont le nom contient un octet NUL, OSS renvoie une erreur 400 BadRequest.
Options courantes
Pour accéder à un bucket situé dans une autre région, utilisez -e pour spécifier l'endpoint. Pour accéder à un bucket appartenant à un autre compte Alibaba Cloud, utilisez -i pour l'AccessKey ID et -k pour l'AccessKey Secret.
Par exemple, exécutez la commande suivante pour supprimer un objet nommé exampletest.png d'un bucket nommé testbucket, situé dans la région Chine (Shanghai) et appartenant à un autre compte Alibaba Cloud :
ossutil rm oss://testbucket/exampletest.png -e oss-cn-shanghai.aliyuncs.com -i yourAccessKeyID -k yourAccessKeySecret