Mit den neuesten aws-cli-Python-Befehlszeilentools können Sie rekursiv alle Dateien unter einem Ordner in einem Bucket löschen:
aws s3 rm --recursive s3://your_bucket_name/foo/
Oder löschen Sie alles unter dem Eimer:
aws s3 rm --recursive s3://your_bucket_name
Wenn Sie den Bucket tatsächlich löschen möchten, gibt es eine einstufige Verknüpfung:
aws s3 rb --force s3://your_bucket_name
Dadurch wird der Inhalt in diesem Bucket rekursiv entfernt und der Bucket gelöscht.
Hinweis: Damit s3://
diese Befehle funktionieren, ist das Protokollpräfix erforderlich
rm
löscht nur Dateien, aberrb --force
die Dateien und den Bucket.--recursive
löscht auch den Ordner.Dies erforderte früher einen dedizierten API-Aufruf pro Schlüssel (Datei), wurde jedoch durch die Einführung von Amazon S3 - Multi-Object Delete im Dezember 2011 erheblich vereinfacht :
Weitere Informationen zu diesem und den entsprechenden Beispielen in PHP finden Sie in meiner Antwort auf die entsprechende Frage zum Löschen aus S3 mithilfe von API PHP mithilfe von Platzhaltern (das AWS SDK für PHP unterstützt dies seit Version 1.4.8 ).
Die meisten AWS-Client-Bibliotheken haben inzwischen auf die eine oder andere Weise eine spezielle Unterstützung für diese Funktionalität eingeführt, z.
Python
Sie können dies mit der hervorragenden Boto- Python-Schnittstelle zu AWS ungefähr wie folgt erreichen (ungetestet, von oben):
Rubin
Dies ist seit Version 1.24 des AWS SDK für Ruby verfügbar. Die Versionshinweise enthalten ebenfalls ein Beispiel:
Oder:
quelle
aws cli
Antwort von like @ number5 unter docs.aws.amazon.com/cli/latest/reference/s3/rm.htmlSie können auch Amazon S3 Lifecycle verwenden, um einen Ablauf für Dateien mit dem Präfix zu erstellen
foo/bar1
.Öffnen Sie die S3-Browserkonsole und klicken Sie auf einen Bucket. Klicken Sie dann auf Eigenschaften und dann auf Lebenszyklus.
Erstellen Sie eine Ablaufregel für alle Dateien mit dem Präfix
foo/bar1
und setzen Sie das Datum auf 1 Tag seit der Erstellung der Datei.Speichern und alle übereinstimmenden Dateien werden innerhalb von 24 Stunden gelöscht.
Vergiss nur nicht, die Regel zu entfernen, wenn du fertig bist!
Keine API-Aufrufe, keine Bibliotheken, Apps oder Skripte von Drittanbietern.
Ich habe gerade mehrere Millionen Dateien auf diese Weise gelöscht.
Ein Screenshot mit dem Fenster "Lebenszyklusregel" (Beachten Sie, dass in dieser Aufnahme das Präfix leer gelassen wurde, was sich auf alle Schlüssel im Bucket auswirkt):
quelle
Für den Fall, dass Sie alle Objekte mit dem Präfix "foo /" mit Java AWS SDK 2.0 entfernen möchten
quelle
Wenn das
s3cmd
Paket auf einem Linux-Computer installiert ist, können Sie dies tuns3cmd rm s3://foo/bar --recursive
quelle
s3cmd del s3://BUCKET/OBJECT
oder um das Löschen des gesamten Bucketss3cmd rb s3://BUCKET
.s3cmd rm
Zumindest nach gibt es keines3cmd --help
.s3cmd rm
ist in der Hilfe ab 2019 (als Alias für del), dies ist eine hervorragende Antwort. Dieaws
cli-Tools arbeiten nur mit einem/
abschließenden Präfix, nicht jedoch mit einem Ordner- und einem partiellen Dateinamenpräfix, während s3cmd in beiden Fällen funktioniert. Diese Antwort erfordert viel mehr Upvotes. Ich musste viel zu weit scrollen, um die richtige Lösung zu finden.Bei Verwendung von AWS-SKD für Ruby V2.
Achtung bitte, alle "foo / *" unter Bucket werden gelöscht.
quelle
Ich habe gerade alle Dateien mit PowerShell aus meinem Bucket entfernt:
quelle
Ich habe gerade gesehen, dass Amazon dem AWS-Konsolenmenü die Option "So leeren Sie einen Bucket" hinzugefügt hat:
http://docs.aws.amazon.com/AmazonS3/latest/UG/DeletingaBucket.html
quelle
Der abgestimmten Antwort fehlt ein Schritt.
Per aws s3 Hilfe:
quelle
Der beste Weg ist, die Lebenszyklusregel zu verwenden, um den gesamten Inhalt des Buckets zu löschen. Programmatisch können Sie folgenden Code (PHP) verwenden, um die Lebenszyklusregel zu PUTEN.
Im obigen Fall werden alle Objekte ab dem Datum "Heute GMT Mitternacht" gelöscht.
Sie können Tage auch wie folgt angeben. Bei Tagen dauert es jedoch mindestens 24 Stunden (mindestens 1 Tag), bis der Inhalt des Eimers gelöscht ist.
quelle
Ich musste folgendes tun ...
quelle