Arbeiten mit Löschmarkierungen - Amazon Simple Storage Service

Arbeiten mit Löschmarkierungen

Eine Löschmarkierung in Amazon S3 ist ein Platzhalter (bzw. eine Markierung) für ein versioniertes Objekt, das in einer einfachen DELETE-Anforderung angegeben wurde. Eine einfache DELETE-Anforderung ist eine Anforderung, die keine Versions-ID angibt. Weil sich das Objekt in einem versioning-fähigen Bucket befindet, wurde das Objekt nicht gelöscht. Die Löschmarkierung bewirkt jedoch, dass sich Amazon S3 verhält, als wäre das Objekt gelöscht worden. Sie können einen DELETE-API-Aufruf in Amazon S3 für eine Löschmarkierung verwenden. Dazu müssen Sie die DELETE-Anforderung unter Verwendung eines Benutzers oder einer Rolle von AWS Identity and Access Management (IAM) mit den entsprechenden Berechtigungen durchführen.

Eine Löschmarkierung hat einen Schlüsselnamen (oder Schlüssel) und eine Versions-ID, so wie jedes andere Objekt. Eine Löschmarkierung unterscheidet sich jedoch wie folgt von anderen Objekten:

  • Einer Löschmarkierung sind keine Daten zugeordnet.

  • Eine Löschmarkierung ist nicht mit einem Wert für eine Zugriffssteuerungsliste (ACL) verknüpft.

  • Wenn Sie eine GET-Anforderung für eine Löschmarkierung ausgeben, ruft die GET-Anforderung nichts ab, da eine Löschmarkierung keine Daten enthält. Insbesondere, wenn in Ihrer GET-Anforderung keine versionId angegeben ist, erhalten Sie den Fehler 404 (Nicht gefunden).

Für Löschmarkierungen fällt eine Mindestgebühr für die Speicherung in Amazon S3 an. Der Speicherbedarf einer Löschmarkierung ist gleich der Größe des Schlüsselnamens der Löschmarkierung. Ein Schlüsselname ist eine Folge von Unicode-Zeichen. Die UTF-8-Codierung für den Schlüsselnamen fügt Ihrem Bucket für jedes Zeichen im Namen 1 bis 4 Byte Speicherplatz hinzu. Löschmarkierungen werden in der S3-Standardspeicherklasse gespeichert.

Wenn Sie ermitteln möchten, wie viele Löschmarkierungen Sie haben und in welcher Speicherklasse diese gespeichert sind, können Sie Amazon S3 Storage Lens verwenden. Weitere Informationen erhalten Sie unter Bewerten Ihrer Speicheraktivität und -nutzung mit Amazon S3 Storage Lens und Amazon S3-Storage-Lens-Metrikglossar.

Weitere Informationen zu Schlüsselnamen finden Sie unter Markieren von Amazon-S3-Objekten. Informationen zum Löschen von Löschmarkierungen finden Sie unter Verwalten von Löschmarkierungen.

Nur Amazon S3 kann eine Löschmarkierung erstellen. Dies erfolgt immer, wenn Sie eine DeleteObject-Anfrage für ein Objekt in einem Bucket mit Versioning oder ausgesetztem Versioning stellen. Das in der DELETE-Anforderung angegebene Objekt wird nicht wirklich gelöscht. Stattdessen wird die Löschmarkierung zur aktuellen Version des Objekts. Der Schlüsselname (oder Schlüssel) des Objekts wird zum Schlüssel der Löschmarkierung.

Wenn Sie ein Objekt abrufen, ohne eine versionId in der Anforderung anzugeben, und die aktuelle Version eine Löschmarkierung ist, antwortet Amazon S3 mit Folgendem:

  • Fehler 404 (Nicht gefunden)

  • Ein Antwort-Header x-amz-delete-marker: true

Wenn Sie ein Objekt abrufen, indem Sie eine versionId in der Anforderung angeben, und die angegebene Version eine Löschmarkierung ist, antwortet Amazon S3 mit Folgendem:

  • Ein Fehler 405 (Method Not Allowed)

  • Ein Antwort-Header x-amz-delete-marker: true

  • Antwort-Header Last-Modified: timestamp (nur bei Verwendung der API-Operationen HeadObject oder GetObject)

Der Antwort-Header x-amz-delete-marker: true teilt Ihnen mit, dass das Objekt, auf das Sie zugegriffen haben, eine Löschmarkierung war. Dieser Antwort-Header gibt niemals false zurück, denn wenn der Wert false lautet, handelt es sich bei der aktuellen oder angegebenen Version des Objekts nicht um eine Löschmarkierung.

Der Antwort-Header Last-Modified gibt die Erstellungszeit der Löschmarkierungen an.

Die folgende Abbildung zeigt, wie ein GetObject-API-Aufruf für ein Objekt, dessen aktuelle Version eine Löschmarkierung ist, mit dem Fehler 404 (Nicht gefunden) antwortet. Der Antwort-Header enthält x-amz-delete-marker: true.

Abbildung, die zeigt, wie ein GetObject-Aufruf einer Löschmarkierung den Fehler 404 (Nicht gefunden) zurückgibt

Wenn Sie einen GetObject-Aufruf für ein Objekt durchführen, indem Sie eine versionId in Ihrer Anfrage angeben, und wenn die angegebene Version eine Löschmarkierung ist, antwortet Amazon S3 mit dem Fehler 405 (Methode nicht zulässig) und die Antwort-Header enthalten x-amz-delete-marker: true und Last-Modified: timestamp.

Abbildung, die zeigt, wie ein GetObject-Aufruf einer Löschmarkierung den Fehler 405 (Methode nicht erlaubt) zurückgibt.

Die einzige Methode, Löschmarkierungen (und andere Versionen eines Objekts) aufzulisten, ist die Verwendung der versions-Subressource in einer ListObjectVersions-Anforderung. Die folgende Abbildung zeigt, dass eine ListObjectsV2- oder ListObjects-Anforderung keine Objekte zurückgibt, deren aktuelle Version eine Löschmarkierung ist.

Abbildung, die zeigt, dass ein ListObjectsV2- oder ListObjects-Aufruf keine Löschmarkierungen zurückgibt