Wie löscht man einen großen S3 Bucket?
Einleitung
Aufgrund einer openstack-cli-Beschränkung schlägt das Entfernen von S3 Buckets mit mehr als 10 000 Objekten bei Verwendung des Befehls fehl:
openstack container delete --recursive <<bucket_name>>
Der Befehl schlägt mit einer Fehlermeldung fehl:
Conflict (HTTP 409) (Request-ID: tx00000000000001bb5e8e5-006135c488-35bc5d520-dias_default) clean_up DeleteContainer: Conflict (HTTP 409) (Request-ID:)
Empfohlener Ansatz
Zum Löschen eines großen S3 Buckets können wir s3cmd verwenden.
Um über s3cmd Zugriff auf Object Storage Buckets zu erhalten, müssen Sie zunächst Ihre eigenen EC2-Zugangsdaten mit diesem Tutorial generieren: cloud/How-to-generate-ec2-credentials-on-Creodias
Konfigurieren Sie s3cmd mit dem Befehl:
s3cmd --configure
folgende Werte hinzufügen und bestätigen:
Access Key: (your EC2 Access Key)
Secret Key: (your EC2 Secret Key)
Default Region: RegionOne
S3 Endpoint: https://s3.fra1-1.cloudferro.com
DNS-style bucket+hostname:port template for accessing a bucket: https://s3.fra1-1.cloudferro.com
Encryption password: (your password)
Path to GPG program: /usr/bin/gpg
Use HTTPS protocol: True
HTTP Proxy server name:
HTTP Proxy server port: 0
Nach diesem Vorgang sollte es Ihnen möglich sein, Ihren Object Storage aufzulisten und darauf zuzugreifen.
Listen Sie Ihre Buckets mit diesem Befehl auf:
eouser@vm01:$ s3cmd ls
2022-02-02 22:22 s3://large-bucket
Jetzt können Sie Ihren großen Bucket mit dem unten dargestellten Befehl löschen, wobei -r für rekursives Entfernen steht.
s3cmd rb -r s3://large-bucket
Alle Dateien in Ihrem Bucket und das angegebene Bucket selbst werden entfernt.
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
Das große Bucket wurde erfolgreich entfernt und die Liste der Buckets ist nun leer.
eouser@vm01:$ s3cmd ls
eouser@vm01:$