Objekt-Versioning - Amazon Simple Storage Service

Objekt-Versioning

Amazon S3-Versioning ermöglicht Ihnen, mehrere Versionen eines Objekts in einem Bucket aufzubewahren. Beispielsweise könnten Sie my-image.jpg (Version 111111) und my-image.jpg (Version 222222) in einem einzigen Bucket speichern. S3-Versioning schützt Sie vor den Folgen unbeabsichtigter Überschreibungen und Löschungen. Zudem können es auch zum Archivieren von Objekten verwenden, sodass Sie Zugriff auf Vorgängerversionen erhalten.

Anmerkung

Die SOAP-API unterstützt nicht S3-Versioning. Die SOAP-Unterstützung über HTTP ist veraltet, steht über HTTPS aber noch zur Verfügung. Neue Amazon S3-Funktionen werden unter SOAP nicht unterstützt.

Zum Anpassen Ihrer Datenaufbewahrungsmethode und zur Speicherkostenkontrolle verwenden Sie das Objekt-Versioning mit Verwaltung des Objektlebenszyklus. Informationen zum Erstellen von S3-Lebenszyklus-Richtlinien unter Verwendung der AWS Management Console finden Sie unter Eine Lebenszyklusrichtlinie für einen S3-Bucket erstellen im Konsolenbenutzerhandbuch für Amazon Simple Storage Service.

Wenn in dem nicht-versionierten Bucket eine Lebenszyklus-Richtlinie für den Ablauf von Objekten vorhanden ist und Sie dasselbe Verhalten hinsichtlich einer dauerhaften Löschung beim Aktivieren des Versionings beibehalten möchten, müssen Sie eine langfristige Ablaufrichtlinie hinzufügen. Die Lebenszyklus-Richtlinie für den langfristigen Ablauf verwaltet das Löschen der langfristigen Objektversionen im versionsfähigen Bucket. (Ein versionsfähiges Bucket behält eine kurzfristige und null oder mehr langfristige Objektversionen.)

Sie müssen S3-Versioning für Ihren Bucket explizit aktivieren. Standardmäßig ist S3-Versioning deaktiviert. Unabhängig davon, ob für den Bucket das Versioning aktiviert ist, hat jedes Objekt in Ihrem Bucket eine Versions-ID. Falls Sie kein Versioning aktiviert haben, setzt Amazon S3 den Wert der Versions-ID auf null. Wenn S3-Versioning aktiviert ist, weist Amazon S3 dem Objekt einen Versions-ID-Wert zu. Dieser Wert unterscheidet ihn von anderen Versionen desselben Schlüssels.

Die Aktivierung und das Aussetzen des Versionings erfolgt auf Bucket-Ebene. Wenn Sie die Versionierung 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 S3-Versioning für einen Bucket 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: 3/L4kqtJlcpXroDTDmJ+rmSpXd3dIbrHY+MTRCxf3vjVBH40Nr8X8gdRQBpUMLUo.

Anmerkung

Der Einfachheit halber verwenden alle Beispiele viel kürzere IDs.

Wenn Sie mit PUT ein Objekt in einen Bucket mit aktiviertem Versioning schreiben, wird die nicht aktuelle Version nicht überschrieben. Die folgende Abbildung zeigt, dass dann, 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) im Bucket bleibt und Amazon S3 eine neue Versions-ID erzeugt (121212) und die neuere Version in den Bucket einfügt.

Diese Funktion verhindert, dass Objekte versehentlich gelöscht oder überschrieben werden, und bietet Ihnen die Möglichkeit, eine frühere Version eines Objekts abzurufen.

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.

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

Sie können jedoch mit GET eine nicht aktuelle Version eines Objekts abrufen, indem Sie ihre Versions-ID angeben. In der folgenden Abbildung wird GET für eine spezifische Objektversion, 111111, durchgeführt. Amazon S3 gibt diese Objektversion zurück, obwohl es sich nicht um die aktuelle Version handelt.

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 dauerhaft löschen. Die folgende Abbildung zeigt, wie DELETE versionId ein Objekt dauerhaft aus einem Bucket löscht, und dass Amazon S3 keine Löschmarkierung einfügt.

Sie können mehr Sicherheit erreichen, indem Sie einen Bucket mit aktiviertem MFA (Multi-Factor Authentication) Delete konfigurieren. In diesem Fall muss der Bucket-Eigentümer zwei Authentifizierungsformen in jede Anforderung aufnehmen, um eine Version zu löschen oder den Versioning-Status des Buckets zu ändern. Weitere Informationen finden Sie unter MFA Delete.

Wichtig

Wenn Sie eine deutliche Zunahme von HTTP 503-Verlangsamungsantworten feststellen, die für Amazon S3 PUT- oder DELETE-Objektanforderungen an einen Bucket mit aktiviertem S3-Versioning eingehen, befinden sich möglicherweise ein oder mehrere Objekte im Bucket, für die Millionen von Versionen vorhanden sind. Weitere Informationen finden Sie unter Amazon S3-Fehlerbehebung.

Weitere Informationen finden Sie unter Verwendung von Versioning.