ECS : Suppression d’un compartiment S3 contenant de nombreux objets
Summary: Un bucket S3 comporte de nombreux objets, mais doit être supprimé. Cet article explique comment supprimer tous les objets d’un compartiment et supprimer finalement le compartiment.
Instructions
Limitations des opérations ci-dessous :
- Les objets sous rétention ECS ne peuvent pas être supprimés.
- Les objets sous rétention de verrouillage d’objet ne peuvent pas être supprimés.
- Les buckets activés en tant que système de fichiers nécessitent la version 3.8.1 ou une version ultérieure.
Option recommandée : Version 3.8 ou supérieure :
Dans la version 3.8 du logiciel ECS, Dell a introduit la suppression simplifiée des buckets. Désormais, les objets et le bucket peuvent être supprimés à l’aide de l’API REST ou d’une chaîne S3 de bucket vide en utilisant x-emc-headers. Dell Technologies recommande la mise à niveau vers la version 3.8. et à l’aide de la suppression simplifiée du bucket sur la suppression du cycle de vie.
À l’aide de la « suppression simplifiée du bucket » à l’aide de l’interface utilisateur ECS (nécessite la version 3.8.1.0 ou une version ultérieure)
La version 3.8.1.x et les versions ultérieures permettent de supprimer le bucket avec le contenu de l’interface utilisateur ECS avec les autorisations appropriées. Accédez au compartiment et sélectionnez Delete dans la liste déroulante. Sélectionnez Supprimer l’intégralité du contenu, y compris le compartiment sélectionné, puis confirmez.

Utilisation de la suppression simplifiée du bucket à l’aide de l’API REST.
Consultez la dernière version du Guide de l’API REST pour référence.

Exemple d’envoi de l’appel d’API rest à l’aide de curl à partir d’ECS :
Commande :
# curl -k -H "$token" -X POST https://<hostname-or-ip>:4443/object/bucket/<bucketname>/deactivate?namespace=<namespace>\&emptyBucket=true
Exemple :
curl -v -k -H "$token" -X POST https://10.60.x.xx:4443/object/bucket/ExampleBucketRest/deactivate?namespace=b_mathias_ns\&emptyBucket=true
Pour surveiller :

Commande :
# curl -k -H "$token" -X GET https://<hostname-or-ip>:4443/object/bucket/<bucketname>/empty-bucket-status?namespace=<namespace> |xmllint --format -
Exemple :
Started:
mathias@client:/usr/share/s3curl$ curl -k -H "$token" -X GET https://10.60.x.xx:4443/object/bucket/ExampleBucketRest/empty-bucket-status?namespace=b_mathias_ns |xmllint --format -
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<empty_bucket_status>
<status>PENDING</status>
<created>1707411798889</created>
<last_updated>1707411798889</last_updated>
<entries_deleted>0</entries_deleted>
<failed_to_delete_due_to_retention>0</failed_to_delete_due_to_retention>
<failed_to_delete_due_to_permission>0</failed_to_delete_due_to_permission>
<failed_to_delete_due_to_dangling xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<failed_to_delete_due_to_other>0</failed_to_delete_due_to_other>
<message xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
</empty_bucket_status>
Running:
mathias@client:/usr/share/s3curl$ curl -k -H "$token" -X GET https://10.60.x.xx:4443/object/bucket/ExampleBucketRest/empty-bucket-status?namespace=b_mathias_ns |xmllint --format -
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 629 100 629 0 0 2431 0 --:--:-- --:--:-- --:--:-- 2437
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<empty_bucket_status>
<status>IN_PROGRESS</status>
<created>1707411798889</created>
<last_updated>1707411828897</last_updated>
<entries_deleted>1337</entries_deleted>
<failed_to_delete_due_to_retention>0</failed_to_delete_due_to_retention>
<failed_to_delete_due_to_permission>0</failed_to_delete_due_to_permission>
<failed_to_delete_due_to_dangling xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<failed_to_delete_due_to_other>0</failed_to_delete_due_to_other>
<message xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
</empty_bucket_status>
Completed:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<error>
<code>1004</code>
<description>Request parameter cannot be found</description>
<details>Unable to find entity with the given id ExampleBucketRest</details>
<retryable>false</retryable>
</error>
L’erreur ci-dessus est attendue, car le compartiment est introuvable.
À l’aide de la suppression simplifiée du bucket à l’aide de S3 :
- Consultez le dernier guide d’accès aux données pour plus de détails.
- Consultez le Guide d’accès aux données v3.8.
Le moyen le plus rapide d’adresser un bucket avec cette option est de : s3curl.
x-emc headers ne sont pas entièrement fonctionnels pour le moment.
s3curl est disponible sur GitHub pour les installations locales. Cette version est utilisée pour inclure : x-emc-headers https://github.com/EMCECS/s3curl/blob/master/s3curl.pl La version modifiée de
s3curl.pl est prévu pour être ajouté au code ECS dans une version ultérieure et cet article de la base de connaissances est mis à jour.
Lorsque
s3curl est configuré, procédez comme suit. Gardez à l’esprit que les données ne peuvent pas être récupérées !
- Démarrez une suppression de bucket simplifiée avec
s3curl:
./s3curl --id=<alias> --DELETE -- http://<hostname-or-ip>:9020/<bucketname> -H "x-emc-empty-bucket:true"
Exemple :
mathias@client:/usr/share/s3curl$ ./s3curl.pl --id=b_mathias_iam --DELETE -- http://10.60.x.xx:9020/ExampleBucket -H "x-emc-empty-bucket:true"
Surveiller Bucket Delete :
./s3curl.pl --id=<alias> http://<hostname-or-ip>:9020/<bucketname>?empty-bucket-status |xmllint --format -
Exemple :
mathias@client:/usr/share/s3curl$ ./s3curl.pl --id=b_mathias_iam -- http://10.60.x.xx:9020/ExampleBucket?empty-bucket-status |xmllint --format -
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 474 100 474 0 0 3128 0 --:--:-- --:--:-- --:--:-- 3139
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<EmptyBucketStatus xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Status>PENDING</Status>
<Created>2024-02-08T16:21:53.849Z</Created>
<LastUpdated>2024-02-08T16:21:53.849Z</LastUpdated>
<EntriesDeleted>0</EntriesDeleted>
<FailedToDeleteDueToRetention>0</FailedToDeleteDueToRetention>
<FailedToDeleteDueToPermission>0</FailedToDeleteDueToPermission>
<FailedToDeleteDueToOther>0</FailedToDeleteDueToOther>
Running:
mathias@client:/usr/share/s3curl$ ./s3curl.pl --id=b_mathias_iam -- http://10.60.x.xx:9020/ExampleBucket?empty-bucket-status |xmllint --format -
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 478 100 478 0 0 3883 0 --:--:-- --:--:-- --:--:-- 3886
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<EmptyBucketStatus xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Status>IN_PROGRESS</Status>
<Created>2024-02-08T16:21:53.849Z</Created>
<LastUpdated>2024-02-08T16:22:23.899Z</LastUpdated>
<EntriesDeleted>1304</EntriesDeleted>
<FailedToDeleteDueToRetention>0</FailedToDeleteDueToRetention>
<FailedToDeleteDueToPermission>0</FailedToDeleteDueToPermission>
<FailedToDeleteDueToOther>0</FailedToDeleteDueToOther>
</EmptyBucketStatus>
Completed:
mathias@client:/usr/share/s3curl$ ./s3curl.pl --id=b_mathias_iam -- http://10.60.x.xx:9020/ExampleBucket?empty-bucket-status |xmllint --format -
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 180 0 180 0 0 1300 0 --:--:-- --:--:-- --:--:-- 1304
<?xml version="1.0"?>
<Error>
<Code>NoSuchBucket</Code>
<Message>The specified bucket does not exist</Message>
<Resource>ExampleBucket</Resource>
<RequestId>0a3c0812:18d77e3a715:2d7:1f33</RequestId>
</Error>
Pour les versions de code antérieures à la version 3.8, effectuez une mise à niveau pour assurer la disponibilité des options ci-dessus.