Entleeren eines Allzweck-Buckets
Sie können den Inhalt eines Allzweck-Buckets über die Amazon-S3-Konsole, AWS SDKs oder AWS Command Line Interface (AWS CLI) leeren. Wenn Sie einen Allzweck-Bucket leeren, löschen Sie alle Objekte, behalten aber den Bucket. Nachdem Sie einen Bucket geleert haben, kann es nicht rückgängig gemacht werden. Dem Bucket während der Löschaktion hinzugefügte Objekte werden möglicherweise gelöscht. Alle Objekte (einschließlich aller Objektversionen und Löschmarkierungen) im Bucket müssen gelöscht werden, bevor der Bucket selbst gelöscht werden kann.
Wenn Sie einen Allzweck-Bucket leeren, in dem die S3 Versionsverwaltung aktiviert oder ausgesetzt ist, werden alle Versionen aller Objekte in diesem Bucket gelöscht. Weitere Informationen finden Sie unter Arbeiten mit Objekten in einem versioning-fähigen Bucket.
Wir empfehlen Ihnen, beim Leeren Ihres Buckets auch alle unvollständigen mehrteiligen Uploads zu entfernen. Sie können mehrteilige Uploads verwenden, um sehr große Objekte (bis zu 5 TB) als einen Satz von Teilen hochzuladen und so den Durchsatz zu verbessern und Netzwerkprobleme schneller zu beheben. In Fällen, in denen der mehrteilige Upload-Prozess nicht abgeschlossen wird, verbleiben die unvollständigen Teile im Bucket (in einem unbrauchbaren Zustand). Für diese unvollständigen Teile fallen Speicherkosten an, bis der Upload-Prozess abgeschlossen ist oder die unvollständigen Teile entfernt werden. Weitere Informationen finden Sie unter Hochladen und Kopieren von Objekten mit mehrteiligen Uploads in Amazon S3.
Es empfiehlt sich, Lebenszyklusregeln so zu konfigurieren, dass Objekte und unvollständige mehrteilige Uploads, die älter als eine bestimmte Anzahl von Tagen sind, verfallen. Wenn Sie Ihre Lebenszyklusregel so erstellen, dass unvollständige mehrteilige Uploads ablaufen, empfehlen wir 7 Tage als geeigneten Ausgangspunkt. Weitere Informationen finden Sie unter Einrichten einer S3-Lebenszykluskonfiguration für einen Bucket.
Der Ablauf des Lebenszyklus ist ein asynchroner Prozess, so dass es einige Tage dauern kann, bis die Regel ausgeführt wird und Ihr Bucket leer ist. Nachdem Amazon S3 die Regel zum ersten Mal ausführt, werden alle Objekte, die für den Ablauf in Frage kommen, zum Löschen markiert. Die Objekte, die zum Löschen markiert sind, werden Ihnen nicht mehr in Rechnung gestellt. Weitere Informationen finden Sie unter Wie leere ich einen Amazon-S3-Bucket mithilfe einer Lebenszykluskonfigurationsregel?
Sie können die Amazon-S3-Konsole verwenden, um einen Allzweck-Bucket zu leeren, wodurch alle Objekte im Bucket gelöscht werden, ohne den Bucket zu löschen.
Einen S3-Bucket leeren
Melden Sie sich bei der AWS-Managementkonsole an und öffnen Sie die Amazon-S3-Konsole unter https://console.aws.amazon.com/s3/
. -
Wählen Sie im linken Navigationsbereich Allzweck-Buckets aus.
-
Wählen Sie in der Liste Buckets die Option neben dem Namen des Buckets aus, den Sie leeren möchten. Wählen Sie anschließend Leeren aus.
-
Bestätigen Sie auf der Seite Empty bucket (Leerer Bucket), dass Sie den Bucket leeren möchten, indem Sie den Bucket-Namen in das Textfeld eingeben, und wählen Sie dann Empty (Leeren).
-
Überwachen Sie den Fortschritt des Vorgangs zum Entleeren von Buckets auf der Seite Bucket entleeren: Status).
Sie können einen Allzweck-Bucket nur dann mit AWS CLI leeren, wenn für den Bucket keine Versionsverwaltung aktiviert ist. Wenn das Versioning nicht aktiviert ist, können Sie den AWS CLI-Befehl rm (remove bucket) mit dem Parameter --recursive verwenden, um einen Bucket zu leeren (oder eine Untermenge von Objekten mit einem spezifischen Schlüsselnamen-Präfix zu entfernen).
Der folgende rm-Befehl entfernt Objekte mit dem Schlüsselnamenpräfix doc, z. B. doc/doc1 und doc/doc2.
$aws s3 rm s3://bucket-name/doc --recursive
Verwenden Sie den folgenden Befehl, um alle Objekte zu entfernen, ohne ein Präfix anzugeben.
$aws s3 rm s3://bucket-name --recursive
Weitere Informationen finden Sie unter Using High-Level S3 Commands with the AWS CLI (Verwenden von hochrangigen S3-Befehlen mit der CLI) im AWS Command Line Interface-Benutzerhandbuch.
Anmerkung
Sie können keine Objekte aus einem Bucket entfernen, für den die Versionierung aktiviert ist. Amazon S3 fügt eine Löschmarkierung hinzu, wenn Sie ein Objekt löschen, was dieser Befehl tut. Weitere Informationen über die S3-Bucket-Versioning finden Sie unter Beibehalten mehrerer Versionen von Objekten mit der S3-Versionsverwaltung.
Sie können die AWS SDKs verwenden, um einen Allzweck-Bucket zu leeren oder eine Teilmenge von Objekten zu entfernen, die ein bestimmtes Schlüsselnamenpräfix haben.
Ein Beispiel zum Leeren eines Buckets mit dem AWS SDK für Java finden Sie unter Löschen eines Allzweck-Buckets. Der Code löscht alle Objekte, unabhängig davon, ob für den Bucket das Versioning aktiviert ist. Anschließend löscht er den Bucket. Um den Bucket nur zu leeren, stellen Sie sicher, dass Sie die Anweisung entfernen, die den Bucket löscht.
Weitere Informationen über die Verwendung anderer AWS-SDKs finden Sie unter Tools für Amazon Web Services
Zum Leeren eines großen Allzweck-Buckets empfehlen wir die Verwendung einer S3-Lebenszyklus-Konfigurationsregel. Der Ablauf des Lebenszyklus ist ein asynchroner Prozess, daher kann es einige Tage dauern, bis die Regel ausgeführt wird und der Bucket leer ist. Nachdem Amazon S3 die Regel zum ersten Mal ausführt, werden alle Objekte, die für den Ablauf in Frage kommen, zum Löschen markiert. Die Objekte, die zum Löschen markiert sind, werden Ihnen nicht mehr in Rechnung gestellt. Weitere Informationen finden Sie unter Wie leere ich einen Amazon-S3-Bucket mithilfe einer Lebenszykluskonfigurationsregel?
Wenn Sie eine Lebenszykluskonfiguration verwenden, um Ihren Bucket zu leeren, sollte die Konfiguration aktuelle Versionen, nicht aktuelle Versionen, Löschmarkierungen und unvollständige mehrteilige Uploads enthalten.
Sie können Lebenszyklus-Konfigurationsregeln hinzufügen, sodass alle Objekte oder eine Untermenge davon mit einem spezifischen Schlüsselnamenpräfix ablaufen. Sie können z. B. eine Lebenszyklusregel so festlegen, dass Objekte einen Tag nach dem Erstellungsdatum ablaufen, um alle Objekte in einem Bucket zu entfernen.
Amazon S3 unterstützt eine Bucket-Lebenszyklusregel, mit der Sie unvollständige mehrteilige Uploads abbrechen können, die nicht innerhalb einer bestimmten Anzahl von Tagen nach der Initiierung abgeschlossen werden. Wir empfehlen, dass Sie diese Lebenszyklusregel konfigurieren, um Ihre Speicherkosten zu minimieren. Weitere Informationen finden Sie unter Konfigurieren einer Bucket-Lebenszykluskonfiguration zum Löschen unvollständiger mehrteiliger Uploads.
Weitere Informationen zur Verwendung einer Lebenszyklus-Konfiguration zum Leeren eines Buckets finden Sie unter Einrichten einer S3-Lebenszykluskonfiguration für einen Bucket und Ablauf von Objekten.
Entleeren eines universellen Buckets mit AWS CloudTrail konfiguriert
AWS CloudTrail verfolgt Datenereignisse auf Objektebene in einem Amazon S3-Allzweck-Bucket, z. B. das Löschen von Objekten. Wenn Sie einen Allzweck-Bucket als Ziel für die Protokollierung Ihrer CloudTrail-Ereignisse verwenden und Objekte aus demselben Bucket löschen, erstellen Sie beim Leeren Ihres Buckets möglicherweise neue Objekte. Beenden Sie Ihre AWS CloudTrail-Trails, um dies zu verhindern. Weitere Informationen darüber, wie Sie verhindern können, dass Ihre CloudTrail-Trails Ereignisse protokollieren, finden Sie im AWS CloudTrail-Benutzerhandbuch unter Deaktivieren der Protokollierung für einen Trail.
Eine weitere Alternative, um zu verhindern, dass CloudTrail-Trails zum Bucket hinzugefügt werden, besteht darin, Ihrer Bucket-Richtlinie eine Deny s3:PutObject-Anweisung hinzuzufügen. Wenn Sie zu einem späteren Zeitpunkt neue Objekte im Bucket speichern möchten, müssen Sie diese Deny s3:PutObject-Anweisung entfernen. Weitere Informationen finden Sie unter Objektoperationen und IAM-JSON-Richtlinienelemente: Auswirkungen im IAM-Benutzerhandbuch.