Jak usunąć duży S3 bucket w NSIS
Wprowadzenie
Ze względu na ograniczenie openstack-cli, usunięcie bucketów S3 zawierających więcej niż 10 000 obiektów nie powiedzie się podczas korzystania z polecenia:
openstack container delete --recursive <<bucket_name>>
pokazując następujący błąd:
Conflict (HTTP 409) (Request-ID: tx00000000000001bb5e8e5-006135c488-35bc5d520-dias_default) clean_up DeleteContainer: Conflict (HTTP 409) (Request-ID:)
Zalecane rozwiązanie
Aby usunąć duży bucket S3 możemy użyć s3cmd.
Aby uzyskać dostęp do swoich bucketów Object Storage za pośrednictwem s3cmd, należy najpierw wygenerować własne poświadczenia EC2 za pomocą następującego samouczka: Jak wygenerować poświadczenia EC2 i zarządzać nimi na NSIS Cloud
Następnie należy skonfigurować s3cmd, jak wyjaśniono w poniższym artykule: Jak uzyskać dostęp do object storage z NSIS za pomocą s3cmd
Po wykonaniu tych czynności powinieneś być w stanie wyświetlić listę i uzyskać dostęp do Object Storage.
Wylistuj swoje buckety za pomocą polecenia:
eouser@vm01:$ s3cmd ls
2022-02-02 22:22 s3://large-bucket
Teraz możesz usunąć swój duży bucket za pomocą polecenia przedstawionego poniżej, gdzie -r oznacza rekurencyjne usuwanie.
s3cmd rb -r s3://large-bucket
Sam bucket i wszystkie znajdujące się w nim pliki zostaną usunięte.
WARNING: Bucket is not empty. Removing all the objects from it first. This may take some time...
delete: 's3://large-bucket/example_file.jpg'
delete: 's3://large-bucket/example_file.txt'
delete: 's3://large-bucket/example_file.png'
...
...
...
Bucket 's3://large-bucket/' removed
Duży bucket został pomyślnie usunięty, a lista bucketów jest pusta.
eouser@vm01:$ s3cmd ls
eouser@vm01:$