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. Während dieser Änderung können gelegentlich HTTP 404 NoSuchKey Fehler bei Anfragen an Objekte auftreten, die nach der Aktivierung der Versionierung erstellt oder aktualisiert wurden. 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-Besitzer und alle autorisierten AWS Identity and Access Management (IAM) Benutzer können die Versionierung aktivieren. Der Bucket-Besitzer ist derjenige AWS-Konto , der den Bucket erstellt hat. Weitere Informationen zu Berechtigungen finden Sie unter Identity and Access Management für Amazon S3.

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

Version IDs

Wenn Sie das Versioning für einen Bucket aktivieren, generiert Amazon S3 automatisch eine eindeutige Versions-ID für das Objekt, das gespeichert wird. In einem Bucket können Sie beispielsweise zwei Objekte mit demselben Schlüssel (Objektname), aber unterschiedlicher Version habenIDs, z. B. photo.gif (Version 111111) und photo.gif (Version 121212).

Diagramm, das einen Bucket mit aktivierter Versionierung darstellt, der zwei Objekte mit demselben Schlüssel, aber unterschiedlicher Version enthält. IDs

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. Ihre Version IDs (null), ihr Inhalt und ihre 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 VersionenIDs, und sie können nicht bearbeitet werden. Bei der Version IDs handelt es sich um Unicode-kodierte, UTF URL -8-kodierte, undurchsichtige Zeichenketten, die nicht länger als 1.024 Byte sind. Im Folgenden wird ein Beispiel gezeigt:

3sL4kqtJlcpXroDTDmJ+rmSpXd3dIbrHY+MTRCxf3vjVBH40Nr8X8gdRQBpUMLUo

Anmerkung

Der Einfachheit halber wird in den anderen Beispielen in diesem Thema viel kürzer verwendet. 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.

Abbildung, die das Einfügen einer Löschmarke zeigt.

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.

Abbildung, die einen GetObject Aufruf einer Löschmarkierung zeigt und einen 404-Fehler (Nicht gefunden) zurückgibt.

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 Besitzer eines Amazon S3 S3-Buckets oder ein autorisierter IAM Benutzer kann eine Version dauerhaft 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 eine bestimmte Objektversion DELETE versionId dauerhaft gelöscht wird.

Sie können die Sicherheit erhöhen, indem Sie einen Bucket so konfigurieren, dass das Löschen mit Multi-Faktor-Authentifizierung (MFA) aktiviert wird. Wenn Sie das MFA Löschen für einen Bucket aktivieren, muss der Bucket-Besitzer in jeder Anfrage zwei Arten der Authentifizierung angeben, um eine Version zu löschen oder den Versionsstatus des Buckets zu ändern. Weitere Informationen finden Sie unter MFALöschen konfigurieren.

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 einen deutlichen Anstieg der Anzahl von HTTP 503 Antworten (Service Unavailable) für Amazon S3 PUT oder DELETE Objektanfragen an einen Bucket mit aktivierter S3-Versionierung feststellen, haben Sie möglicherweise ein oder mehrere Objekte im Bucket, für die es Millionen von Versionen gibt. Weitere Informationen finden Sie im Abschnitt zur S3-Versionsverwaltung unter Problembehandlung bei der Versionierung.