Löschen von Objekten aus einem versioning-fähigen Bucket - Amazon Simple Storage Service

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Löschen von Objekten aus einem versioning-fähigen Bucket

Sie können Objektversionen aus Amazon-S3-Buckets löschen, wann immer Sie möchten. Sie können auch Lebenszyklus-Konfigurationsregeln für Objekte definieren, die einen definierten Lebenszyklus haben, um Amazon S3 aufzufordern, die aktuellen Objektversionen ablaufen zu lassen, oder die nicht aktuellen Objektversionen ständig zu entfernen. Wenn Ihr Bucket versioning-fähig ist oder das Versioning ausgesetzt ist, funktionieren die Lebenszyklus-Konfigurationsaktionen wie folgt:

  • Die Aktion Expiration gilt für die aktuelle Objektversion. Statt die aktuelle Objektversion zu löschen, behält Amazon S3 die aktuelle Version als nicht aktuelle Version bei, indem es eine Löschmarkierung hinzufügt, die anschließend zur aktuellen Version wird.

  • Die NoncurrentVersionExpiration-Aktion wird nur auf nicht aktuelle Objektversionen angewendet, und Amazon S3 entfernt diese Objektversionen dauerhaft. Dauerhaft entfernte Objekte können nicht wiederhergestellt werden.

Weitere Informationen zu S3 Lifecycle finden Sie unter Verwalten Ihres Speicher-Lebenszyklus und Beispiele der S3-Lebenszyklus-Konfiguration.

Um zu sehen, wie viele aktuelle und nicht aktuelle Objektversionen Ihre Buckets enthalten, können Sie die Metriken von Amazon S3 Storage Lens verwenden. S3 Storage Lens ist eine Cloud-Speicheranalysefunktion, mit der Sie unternehmensweite Einblicke in die Nutzung und Aktivität von Objektspeichern erhalten können. Weitere Informationen finden Sie unter Verwenden von S3 Storage Lens zur Optimierung Ihrer Speicherkosten. Eine vollständige Liste der Metriken finden Sie im Glossar der S3-Storage-Lens-Metriken.

Anmerkung

Für jede Version eines Objekts, das gespeichert und übertragen wird, einschließlich nicht aktueller Objektversionen, gelten die normalen Amazon S3-Tarife. Weitere Informationen finden Sie unter Amazon S3 – Preise.

Löschen von Anwendungsfällen

Eine DELETE-Anforderung hat die folgenden Anwendungsfälle:

  • Wenn das Versioning aktiviert ist, kann ein einfaches DELETE ein Objekt nicht dauerhaft löschen. (Eine einfache DELETE-Anforderung ist eine Anforderung, die keine Versions-ID angibt.) Stattdessen fügt Amazon S3 eine Löschmarkierung in den Bucket ein, und die Löschmarkierung wird zur aktuellen Objektversion mit einer neuen ID.

    Wenn Sie versuchen, GET für ein Objekt auszuführen, dessen aktuelle Version eine Löschmarkierung ist, verhält sich Amazon S3, als wäre das Objekt gelöscht worden (obwohl es nicht vollständig entfernt wurde), und gibt einen 404-Fehler zurück. Weitere Informationen finden Sie unter Arbeiten mit Löschmarkierungen.

    Die folgende Abbildung zeigt, dass ein einfaches DELETE das spezifizierte Objekt nicht wirklich löscht. Stattdessen fügt Amazon S3 eine Löschmarkierung ein.

  • Um Objektversionen dauerhaft zu löschen, müssen Sie verwende DELETE Object versionId.

    Die folgende Abbildung zeigt, dass das beim Löschen einer angegebenen Objektversion dieses Objekt dauerhaft gelöscht wird.

Löschen von Objektversionen

Sie können Objektversionen in Amazon S3 mithilfe der Konsole, AWS SDKs, der REST-API oder der löschen AWS Command Line Interface.

  1. Melden Sie sich bei der an AWS Management Console und öffnen Sie die Amazon S3-Konsole unter https://console.aws.amazon.com/s3/.

  2. Wählen Sie in der Liste Buckets den Namen des Buckets aus, der das Objekt enthält.

  3. Wählen Sie in der Liste Objects (Objekte) den Namen des Objekts aus.

  4. Wählen Sie Versions (Versionen).

    Amazon S3 zeigt alle Versionen für das Objekt an.

  5. Aktivieren Sie das Kontrollkästchen neben der Version ID (Versions-ID) für die Versionen, die Sie permanent löschen möchten.

  6. Wählen Sie Delete (Löschen).

  7. Geben Sie in Objekte endgültig löschen? permanently delete ein.

    Warnung

    Wenn Sie eine Objektversion endgültig löschen, kann die Aktion nicht rückgängig gemacht werden.

  8. Wählen Sie Delete objects (Objekte löschen).

    Amazon S3 löscht die Objektversion.

Beispiele für das Löschen von Objekten mit den - AWS SDKs für Java, .NET und PHP finden Sie unter Löschen von Amazon-S3-Objekten. Die Beispiele für das Löschen von Objekten in nicht versioning-fähigen und versioning-fähigen Buckets sind dieselben. Für versioning-fähige Buckets weist Amazon S3 jedoch eine Versionsnummer zu. Andernfalls ist die Versionsnummer null.

Informationen zur Verwendung anderer AWS SDKs finden Sie im AWS -Entwicklerzentrum.

Python

Anweisungen zum Erstellen und Testen eines funktionierenden Beispiels finden Sie unter Verwendung der AWS SDK for Python (Boto).

Das folgende Beispiel für Python-Code zeigt das dauerhafte Löschen eines versionierten Objekts, indem alle seine Versionen gelöscht werden.

def permanently_delete_object(bucket, object_key): """ Permanently deletes a versioned object by deleting all of its versions. Usage is shown in the usage_demo_single_object function at the end of this module. :param bucket: The bucket that contains the object. :param object_key: The object to delete. """ try: bucket.object_versions.filter(Prefix=object_key).delete() logger.info("Permanently deleted all versions of object %s.", object_key) except ClientError: logger.exception("Couldn't delete all versions of %s.", object_key) raise
Löschen einer spezifischen Objektversion
  • Geben Sie in einem DELETE eine Versions-ID ein.

Beispiel – Löschen einer spezifischen Version

Im folgenden Beispiel wird die Version UIORUnfnd89493jJFJ von photo.gif gelöscht.

DELETE /photo.gif?versionId=UIORUnfnd89493jJFJ HTTP/1.1 Host: bucket.s3.amazonaws.com Date: Wed, 12 Oct 2009 17:50:00 GMT Authorization: AWS AKIAIOSFODNN7EXAMPLE:xQE0diMbLRepdf3YB+FIEXAMPLE= Content-Type: text/plain Content-Length: 0

Der folgende Befehl löscht ein Objekt namens test.txt aus einem Bucket mit dem Namen DOC-EXAMPLE-BUCKET1. Zum Entfernen einer bestimmte Version eines Objekts müssen Sie der Bucket-Eigentümer sein und die Versions-ID-Subressource verwenden.

aws s3api delete-object --bucket DOC-EXAMPLE-BUCKET1 --key test.txt --version-id versionID

Weitere Informationen zu delete-object finden Sie unter delete-object in der AWS CLI -Befehlsreferenz.

Weitere Informationen zum Löschen von Objektversionen finden Sie in den folgenden Themen: