Löschen eines Amazon AWS S3-Buckets mit vielen tausend Dateien / Schlüsseln

7

Gibt es eine einfache Möglichkeit, einen Amazon S3-Bucket zu löschen, in dem sich viele Zehntausende von Objekten befinden? Ich habe s3cmd mit --recursive und --force ausprobiert, aber es bläht sich auf und läuft seit Tagen mit wenig Effekt.

Lanze
quelle

Antworten:

7

Die neue Antwort zum Löschen eines Amazon S3-Buckets mit vielen Tausenden oder Millionen von Elementen besteht darin, die neuen Regeln für den Objektablauf zu verwenden .

Sie können dies sogar über die AWS-Konsole tun. Gehen Sie einfach zu den Eigenschaften des Buckets, den Sie löschen möchten, öffnen Sie die Registerkarte LifeCycle und richten Sie eine neue Ablaufregel ohne Präfix und 1 Tag vor Ablauf ein. Warten Sie einen Tag und die Objekte werden entfernt. Wenn Sie Millionen haben (wie in meinem Fall), kann es einige Tage dauern, bis alle Objekte tatsächlich verschwunden sind. Sie werden jedoch erfreut feststellen, dass Sie diese gelagerten Artikel nach Ablauf der 24-Stunden-Frist nicht mehr bezahlen.

Hinweis: Die einzige Einschränkung bei diesem Ansatz besteht darin, dass Sie die Lebenszyklusregeln nicht festlegen können, wenn Sie die Versionierung aktiviert haben.

Objektablauf

Joshua
quelle
Ich sehe dieses Menü nicht mehr in AWS Console. Könnten Sie bitte den Beitrag aktualisieren? Danke
Toolkit
3

Amazon hat kürzlich eine neue Funktion hinzugefügt: "Löschen mehrerer Objekte", mit der bis zu 1.000 Objekte gleichzeitig mit einer einzigen API-Anforderung gelöscht werden können. Dies sollte eine Vereinfachung des Löschvorgangs einer großen Anzahl von Dateien aus einem Bucket ermöglichen.

Die Dokumentation für die neue Funktion finden Sie hier: http://docs.amazonwebservices.com/AmazonS3/latest/API/index.html?multiobjectdeleteapi.html

Im Moment müssten Sie die API für die Anfrage manuell verwenden, aber ich würde erwarten, dass Tools wie s3cmd irgendwann aktualisiert werden, um die Funktion direkt zu unterstützen.

Andrew Maiman
quelle
Vor kurzem? Die haben heute gerade die E-Mails verschickt! ;)
Dünn
Ja, aber wenn ich "Heute" geschrieben hätte, wäre es nur für einen Tag korrekt gewesen :-) Ich erinnerte mich, diese Frage vor einiger Zeit gesehen zu haben. Als ich die E-Mail erhielt, kam ich zurück, um sie zu beantworten.
Andrew Maiman
1

Synchronisieren Sie ein leeres Verzeichnis mit dem Bucket mit dem --deleteFlag.

mkdir tmp-empty-dir
aws s3 sync --delete tmp-empty-dir/ s3://my-bucket

dann ist der Eimer leer und kann gelöscht werden.

tphummel
quelle
2
Das hat den gleichen Effekt wie rb- es löscht Dateien nacheinander
Toolkit
0

Ich benutze dieses Java Applet , um dies zu tun. Sie können ganz einfach alle Ihre Dateien auswählen und löschen.

Bart De Vos
quelle