Wie funktioniert S3-Versioning - 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.

Wie funktioniert S3-Versioning

Sie können die S3-Versionsverwaltung verwenden, um mehrere Versionen eines Objekts in einem Bucket zu behalten und so Objekte wiederherzustellen, die versehentlich gelöscht oder überschrieben wurden. Wenn Sie beispielsweise die S3-Versionsverwaltung auf einen Bucket anwenden, werden die folgenden Änderungen vorgenommen:

  • Wenn Sie ein Objekt löschen, fügt Amazon S3 eine Löschmarkierung hinzu, statt das Objekt dauerhaft zu entfernen. Die Löschmarkierung wird zur aktuellen Objektversion. Sie können dann die vorherige Version wiederherstellen. Weitere Informationen finden Sie unter Löschen von Objekten aus einem versioning-fähigen Bucket.

  • Wenn Sie ein Objekt überschreiben, fügt Amazon S3 eine neue Objektversion im Bucket hinzu. Die vorherige Version verbleibt im Bucket und wird zu einer nicht aktuellen Version. Sie können die vorherige Version wiederherstellen.

Anmerkung

Für jede Version eines gespeicherten und übertragenen Objekts gelten die Standardpreise von Amazon S3. Jede Version eines Objekts besteht aus dem vollständigen Objekt, nicht aus einem Delta gegenüber der vorherigen Version. Wenn Sie also drei Versionen eines Objekts gespeichert haben, fallen Gebühren für die drei Objekte an.

Jedem von Ihnen erstellten S3-Bucket ist eine Versioning-Subressource zugeordnet. (Weitere Informationen finden Sie unter Optionen für die Bucket-Konfiguration.) Standardmäßig ist Ihr Bucket nicht versioning-fähig, und dementsprechend speichert die Versioning-Subressource eine leere Versioning-Konfiguration wie folgt.

<VersioningConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> </VersioningConfiguration>

Um die Versionsverwaltung zu aktivieren, können Sie eine Anfrage an Amazon S3 mit einer Versionskonfiguration senden, die einen Enabled-Status enthält.

<VersioningConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Status>Enabled</Status> </VersioningConfiguration>

Um das Versioning auszusetzen, setzen Sie den Statuswert auf Suspended.

Anmerkung

Wenn Sie die Versionsverwaltung für einen Bucket zum ersten Mal aktivieren, kann es einen Moment dauern, bis die Änderung vollständig verbreitet ist. Wir empfehlen, dass Sie nach dem Aktivieren der Versionsverwaltung 15 Minuten warten, bevor Sie Schreibvorgänge (PUT oder DELETE) für Objekte im Bucket ausführen.

Der Bucket-Eigentümer und alle autorisierten AWS Identity and Access Management (IAM)-Benutzer können das Versioning aktivieren. Der Bucket-Eigentümer ist der AWS-Konto , der den Bucket erstellt hat. Weitere Informationen zu Berechtigungen finden Sie unter Identity and Access Management in Amazon S3.

Weitere Informationen zum Aktivieren und Deaktivieren der S3-Versionsverwaltung mithilfe der AWS Management Console, AWS Command Line Interface (AWS CLI) oder REST-API finden Sie unter Aktivieren des Versioning für Buckets.

Versions-ID

Wenn Sie das Versioning für einen Bucket aktivieren, generiert Amazon S3 automatisch eine eindeutige Versions-ID für das Objekt, das gespeichert wird. Beispielsweise könnten Sie in einem Bucket zwei Objekte mit demselben Schlüssel (Objektname) haben, aber mit unterschiedlichen Versions-IDs, wie beispielsweise photo.gif (Version 111111) und photo.gif (Version 121212).


                Diagramm, das zeigt, wie die S3-Versionsverwaltung für einen Bucket mit aktivierter Versionsverwaltung funktioniert, der zwei Objekte mit demselben Schlüssel, aber unterschiedlichen Versions-IDs enthält.

Jedes Objekt hat eine Versions-ID, unabhängig davon, ob die S3-Versionierung aktiviert ist oder nicht. Wenn die S3-Versionsverwaltung nicht aktiviert ist, legt Amazon S3 den Wert der Versions-ID auf null fest. Wenn das S3-Versioning aktiviert ist, weist Amazon S3 dem Objekt einen Versions-ID-Wert zu. Dieser Wert unterscheidet dieses Objekt von anderen Versionen desselben Schlüssels.

Wenn Sie das S3-Versioning für einen vorhandenen Bucket aktivieren, bleiben Objekte, die bereits im Bucket gespeichert sind, unverändert. Die Version-IDs (null), Inhalte und Berechtigungen bleiben unverändert. Nachdem Sie die S3-Versionsverwaltung aktiviert haben, erhält jedes Objekt, das dem Bucket hinzugefügt wird, eine Versions-ID, die sie von anderen Versionen desselben Schlüssels unterscheidet.

Nur Amazon S3 generiert Versions-IDs und diese können nicht bearbeitet werden. Versions-IDs sind Unicode-, UTF-8-codierte, URL-fähige, nicht einsichtige Zeichenfolgen, die nicht mehr als 1.024 Byte lang sind. Im Folgenden wird ein Beispiel gezeigt:

3sL4kqtJlcpXroDTDmJ+rmSpXd3dIbrHY+MTRCxf3vjVBH40Nr8X8gdRQBpUMLUo

Anmerkung

Zur Vereinfachung verwenden die anderen Beispiele in diesem Thema viel kürzere IDs.

Versioning-Workflows

Wenn Sie mit PUT ein Objekt in einen Bucket mit aktiviertem Versioning schreiben, wird die nicht aktuelle Version nicht überschrieben. Wie in der folgenden Abbildung dargestellt, tritt das folgende Verhalten auf, wenn eine neue Version von photo.gif mit PUT in einen Bucket geschrieben wird, der bereits ein Objekt desselben Namens enthält:

  • Das ursprüngliche Objekt (ID = 111111) verbleibt im Bucket.

  • Amazon S3 generiert eine neue Versions-ID (121212) und fügt diese neuere Version des Objekts dem Bucket hinzu.


                Diagramm, das zeigt, wie die S3-Versionsverwaltung funktioniert, wenn Sie ein Objekt mit PUT in einen Bucket mit aktivierter Versionsverwaltung schreiben.

Mit dieser Funktion können Sie eine vorherige Version eines Objekts abrufen, wenn ein Objekt versehentlich überschrieben oder gelöscht wurde.

Wenn Sie DELETE für ein Objekt ausführen, bleiben alle Versionen in dem Bucket, und Amazon S3 fügt eine Löschmarkierung ein, wie in der folgenden Abbildung gezeigt.


                Diagramm, das zeigt, wie die S3-Versionsverwaltung funktioniert, wenn Sie ein Objekt mit DELETE in einen Bucket mit aktivierter Versionsverwaltung schreiben.

Die Löschmarkierung wird zur aktuellen Version des Objekts. Standardmäßig wird durch GET-Anforderungen die zuletzt gespeicherte Version abgerufen. Eine GET Object-Anforderung gibt einen 404 Not Found-Fehler zurück, wenn die aktuelle Version eine Löschmarkierung ist, wie in der folgenden Abbildung gezeigt.


                Diagramm, das die Reaktion auf eine GET-Operation für ein Objekt in einem Bucket mit aktivierter Versionsverwaltung darstellt, wenn die aktuelle Version eine Löschmarkierung ist.

Sie können jedoch mit GET eine nicht aktuelle Version eines Objekts abrufen, indem Sie ihre Versions-ID angeben. In der folgenden Abbildung wird mit GET eine spezifische Objektversion abgerufen, 111111. Amazon S3 gibt diese Objektversion zurück, auch wenn es nicht die aktuelle Version ist.

Weitere Informationen finden Sie unter Abrufen von Objektversionen aus einem versioning-fähigen Bucket.


                Diagramm, das zeigt, wie die S3-Versionsverwaltung funktioniert, wenn Sie eine nicht aktuelle Version mit GET in einem Bucket mit aktivierter Versionsverwaltung speichern.

Sie können ein Objekt permanent löschen, indem Sie die Version angeben, die Sie löschen wollen. Nur der Eigentümer eines Amazon-S3-Buckets kann eine Version permanent löschen. Wenn Ihre DELETE-Operation die versionId angibt, wird diese Objektversion dauerhaft gelöscht, und Amazon S3 fügt keine Löschmarkierung ein.


                Diagramm, das zeigt, wie DELETE versionId eine bestimmte Objektversion dauerhaft aus einem Bucket mit aktivierter Versionsverwaltung löscht, ohne eine Löschmarkierung einzufügen.

Sie können die Sicherheit erhöhen, indem Sie einen Bucket mit aktivierter Multi-Faktor-Authentifizierung (MFA) Delete konfigurieren. In diesem Fall muss der Bucket-Eigentümer zwei Authentifizierungsformen in jede Anforderung aufnehmen, um eine Version zu löschen oder den Versionsverwaltungsstatus des Buckets zu ändern. Weitere Informationen finden Sie unter Konfigurieren von MFA Delete.

Wann werden neue Versionen für ein Objekt erstellt?

Neue Versionen werden nur erstellt, wenn Sie für ein neues Objekt PUT ausführen. Beachten Sie, dass bestimmte Aktionen wie CopyObject durch die Implementierung einer PUT-Operation funktionieren.

Einige Aktionen, die das aktuelle Objekt ändern, erstellen keine neue Version, da sie kein neues Objekt mit PUT bearbeiten. Dies umfasst Aktionen wie das Ändern der Markierungen für ein Objekt.

Wichtig

Wenn Sie eine deutliche Zunahme von HTTP 503-Antworten (Service nicht verfügbar) feststellen, die für Amazon-S3-PUT- oder DELETE-Objektanfragen an einen Bucket mit aktivierter S3-Versionsverwaltung eingehen, befinden sich möglicherweise ein oder mehrere Objekte im Bucket, für die Millionen von Versionen vorhanden sind. Weitere Informationen finden Sie im Abschnitt zur S3-Versionsverwaltung unter Fehlerbehebung.