

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.

# Beibehalten mehrerer Versionen von Objekten mit der S3-Versionsverwaltung
<a name="Versioning"></a>

Das Versioning in Amazon S3 ermöglicht Ihnen, mehrere Versionen eines Objekts im selben Bucket aufzubewahren. Sie können die S3-Versioning-Funktion verwenden, um sämtliche Versionen aller Objekte in Ihren Buckets zu speichern, abzurufen oder wiederherzustellen. Daten lassen sich dank Versioning nach unbeabsichtigten Benutzeraktionen und Anwendungsfehlern leichter wiederherstellen. Wenn Sie das Versioning für einen Bucket aktivieren und Amazon S3 mehrere Schreibanforderungen für dasselbe Objekt gleichzeitig empfängt, werden alle Objekte gespeichert.

Versioning-fähige Buckets erlauben Ihnen, Objekte nach einem versehentlichen Löschen oder Überschreiben wiederherzustellen. Wenn Sie beispielsweise ein Objekt löschen, fügt Amazon S3 eine Löschmarkierung ein, anstatt das Objekt dauerhaft zu entfernen. Die Löschmarkierung wird zur aktuellen Objektversion. Wenn Sie ein Objekt überschreiben, entsteht eine neue Objektversion im Bucket. Sie können die vorherige Version immer wieder herstellen. Weitere Informationen finden Sie unter [Löschen von Objekten aus einem versioning-fähigen Bucket](DeletingObjectVersions.md). 

Standardmäßig ist das S3-Versioning in Buckets deaktiviert und Sie müssen es explizit aktivieren. Weitere Informationen finden Sie unter [Aktivieren des Versioning für Buckets](manage-versioning-examples.md).

**Anmerkung**  
Die SOAP API unterstützt kein 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.
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 nur 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. 

## Nicht versionierte, versionings-fähige und Buckets mit ausgesetztem Versioning
<a name="versioning-states"></a>

Buckets können einen von drei Zuständen aufweisen: 
+ Nicht versioniert (Standard)
+ Versionsfähig
+ Ausgesetztes Versioning

Sie aktivieren und unterbrechen das Versioning auf Bucket-Ebene. Nachdem Sie einen Bucket versionsfähig gemacht haben, kann er nicht in einen nicht versionsfähigen Status zurückgesetzt werden. Sie können das Versioning für diesen Bucket jedoch *aussetzen*.

Der Versioning-Status gilt für alle (niemals für eine Untermenge) der Objekte in diesem Bucket. Wenn Sie die Versioning in einem Bucket aktivieren, werden alle neuen Objekte versioniert und mit einer eindeutigen Versions-ID versehen. Objekte, die zum Zeitpunkt der Aktivierung der Versioning im Bucket bereits im Bucket vorhanden waren, werden *immer* versioniert und erhalten eine eindeutige Versions-ID, wenn sie durch zukünftige Anforderungen geändert werden. Beachten Sie Folgendes: 
+ Objekte, die in Ihrem Bucket gespeichert sind, bevor Sie den Status für die Versionsverwaltung einrichten, haben die Versions-ID `null`. Wenn Sie das Versioning aktivieren, ändern sich die in Ihrem Bucket vorhandenen Objekte nicht mehr. Was sich ändert, ist, wie Amazon S3 die Objekte in zukünftigen Anfragen verarbeitet. Weitere Informationen finden Sie unter [Arbeiten mit Objekten in einem versioning-fähigen Bucket](manage-objects-versioned-bucket.md).
+ Der Bucket-Eigentümer (oder ein anderer Benutzer mit geeigneten Berechtigungen) kann das Versioning aussetzen, um zu verhindern, dass sich weitere Objektversionen ansammeln. Wenn Sie das Versioning aussetzen, ändern sich die in Ihrem Bucket vorhandenen Objekte nicht. Was sich ändert, ist, wie Amazon S3 die Objekte in zukünftigen Anfragen verarbeitet. Weitere Informationen finden Sie unter [Arbeiten mit Objekten in einem Bucket mit ausgesetztem Versioning](VersionSuspendedBehavior.md).

## Verwenden des S3-Versioning mit dem S3-Lebenszyklus
<a name="versioning-lifecycle"></a>

Zum Anpassen Ihrer Datenaufbewahrungsmethode und zur Speicherkostenkontrolle verwenden Sie das Objekt-Versioning mit dem S3-Lebenszyklus. Weitere Informationen finden Sie unter [Verwalten des Lebenszyklus von Objekten](object-lifecycle-mgmt.md). Informationen zum Erstellen von S3-Lifecycle-Konfigurationen mithilfe der AWS-Managementkonsole AWS CLI, AWS SDKs, oder der REST-API finden Sie unter[Einrichten einer S3-Lebenszykluskonfiguration für einen Bucket](how-to-set-lifecycle-configuration-intro.md).

**Wichtig**  
Wenn in dem nicht-versionierten Bucket eine Lebenszyklus-Konfiguration für den Ablauf von Objekten vorhanden ist und Sie dasselbe Verhalten hinsichtlich einer dauerhaften Löschung beim Aktivieren der Versionsverwaltung beibehalten möchten, müssen Sie eine Konfiguration für den Ablauf von nicht aktuellen Objekten hinzufügen. Die Lebenszykluskonfiguration für den Ablauf von nicht aktuellen Objekten verwaltet das Löschen der nicht aktuellen Objektversionen in dem Bucket mit aktivierter Versionsverwaltung. (Ein versionsfähiges Bucket behält eine kurzfristige und null oder mehr langfristige Objektversionen.) Weitere Informationen finden Sie unter [Einrichten einer S3-Lebenszykluskonfiguration für einen Bucket](how-to-set-lifecycle-configuration-intro.md).

Informationen zum Arbeiten mit S3-Versioning finden Sie in den folgenden Themen.

**Topics**
+ [Nicht versionierte, versionings-fähige und Buckets mit ausgesetztem Versioning](#versioning-states)
+ [Verwenden des S3-Versioning mit dem S3-Lebenszyklus](#versioning-lifecycle)
+ [Wie funktioniert S3-Versioning](versioning-workflows.md)
+ [Aktivieren des Versioning für Buckets](manage-versioning-examples.md)
+ [Konfigurieren von MFA Delete](MultiFactorAuthenticationDelete.md)
+ [Arbeiten mit Objekten in einem versioning-fähigen Bucket](manage-objects-versioned-bucket.md)
+ [Arbeiten mit Objekten in einem Bucket mit ausgesetztem Versioning](VersionSuspendedBehavior.md)
+ [Fehlerbehebung für die Versionsverwaltung](troubleshooting-versioning.md)

# Wie funktioniert S3-Versioning
<a name="versioning-workflows"></a>

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](DeletingObjectVersions.md).
+ 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 [Konfigurationsoptionen für Allzweck-Buckets](UsingBucket.md#bucket-config-options-intro).) 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 der Änderung können bei Anforderungen an Objekte gelegentlich Fehler des Typs `HTTP 404 NoSuchKey` auftreten, die erst nach Aktivierung der Versionsverwaltung 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 [Identitäts- und Zugriffsverwaltung für Amazon S3](security-iam.md).

Weitere Informationen zum Aktivieren und Deaktivieren der S3-Versionierung mithilfe der AWS-Managementkonsole, AWS Command Line Interface (AWS CLI) oder der REST-API finden Sie unter. [Aktivieren des Versioning für Buckets](manage-versioning-examples.md)

**Topics**
+ [Version IDs](#version-ids)
+ [Versioning-Workflows](#versioning-workflows-examples)

## Version IDs
<a name="version-ids"></a>

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 haben IDs, 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\]](http://docs.aws.amazon.com/de_de/AmazonS3/latest/userguide/images/versioning_Enabled.png)


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

`3sL4kqtJlcpXroDTDmJ+rmSpXd3dIbrHY+MTRCxf3vjVBH40Nr8X8gdRQBpUMLUo`

**Anmerkung**  
Der Einfachheit halber verwenden die anderen Beispiele in diesem Thema viel kürzer. IDs



## Versioning-Workflows
<a name="versioning-workflows-examples"></a>

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.\]](http://docs.aws.amazon.com/de_de/AmazonS3/latest/userguide/images/versioning_PUT_versionEnabled3.png)


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öschmarkierung zeigt.\]](http://docs.aws.amazon.com/de_de/AmazonS3/latest/userguide/images/versioning_DELETE_versioningEnabled.png)


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 zeigt, dass ein GetObject Aufruf einer Löschmarkierung einen 404-Fehler (Not Found) zurückgibt.\]](http://docs.aws.amazon.com/de_de/AmazonS3/latest/userguide/images/versioning_DELETE_NoObjectFound.png)


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](RetrievingObjectVersions.md).

![\[Diagramm, das zeigt, wie die S3-Versionsverwaltung funktioniert, wenn Sie eine nicht aktuelle Version mit GET in einem Bucket mit aktivierter Versionsverwaltung speichern.\]](http://docs.aws.amazon.com/de_de/AmazonS3/latest/userguide/images/versioning_GET_Versioned3.png)


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 oder ein autorisierter IAM-Benutzer 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 löscht.\]](http://docs.aws.amazon.com/de_de/AmazonS3/latest/userguide/images/versioning_DELETE_versioningEnabled2.png)


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](MultiFactorAuthenticationDelete.md).

### Wann werden neue Versionen für ein Objekt erstellt?
<a name="versioning-workflows-new-versions"></a>

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 für die Versionsverwaltung](troubleshooting-versioning.md).

# Aktivieren des Versioning für Buckets
<a name="manage-versioning-examples"></a>

Sie können Amazon-S3-Versioning nutzen, um mehrere Versionen eines Objekts in einem Bucket aufzubewahren. Dieser Abschnitt enthält Beispiele dafür, wie die Versionierung in einem Bucket mithilfe der Konsole, der REST-API und AWS Command Line Interface ()AWS CLI aktiviert wird. AWS SDKs 

**Anmerkung**  
Nach der erstmaligen Aktivierung der Versionsverwaltung für einen Bucket kann es bis zu 15 Minuten dauern, bis sich die Änderung vollständig im S3-System verbreitet. Während dieser Zeit können `GET`-Anfragen nach Objekten, die nach der Aktivierung der Versionsverwaltung erstellt oder aktualisiert wurden, zu Fehlern `HTTP 404 NoSuchKey` führen. 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. Diese Wartezeit trägt dazu bei, potenzielle Probleme mit der Sichtbarkeit von Objekten und der Versionsverfolgung zu vermeiden.

Weitere Informationen über das S3-Versioning finden Sie unter [Beibehalten mehrerer Versionen von Objekten mit der S3-Versionsverwaltung](Versioning.md). Informationen zum Arbeiten mit Objekten, die sich in einem versioning-fähigen Bucket befinden, finden Sie unter [Arbeiten mit Objekten in einem versioning-fähigen Bucket](manage-objects-versioned-bucket.md).

Weitere Informationen zur Verwendung von S3 Versioning zum Schutz von Daten finden Sie im [Tutorial: Schutz von Daten in Amazon S3 vor versehentlichem Löschen oder Anwendungsfehlern mithilfe von S3 Versioning, S3 Object Lock und S3 Replication](https://aws.amazon.com/getting-started/hands-on/protect-data-on-amazon-s3/?ref=docs_gateway/amazons3/manage-versioning-examples.html).

Jedem von Ihnen erstellten S3-Bucket ist eine *Versioning*-Subressource zugeordnet. (Weitere Informationen finden Sie unter [Konfigurationsoptionen für Allzweck-Buckets](UsingBucket.md#bucket-config-options-intro).) 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 das Versioning zu aktivieren, können Sie eine Anfrage an Amazon S3 mit einer Versionskonfiguration senden, die einen 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`.

Der Bucket-Eigentümer und alle autorisierten Benutzer können das Versioning aktivieren. Der Bucket-Besitzer ist derjenige AWS-Konto , der den Bucket erstellt hat (das Root-Konto). Weitere Informationen zu Berechtigungen finden Sie unter [Identitäts- und Zugriffsverwaltung für Amazon S3](security-iam.md).

In den folgenden Abschnitten finden Sie weitere Informationen zur Aktivierung der S3-Versionierung mithilfe der Konsole AWS CLI, und der AWS SDKs.

## Verwenden der S3-Konsole
<a name="enable-versioning"></a>

Gehen Sie wie folgt vor, AWS-Managementkonsole um die Versionierung in einem S3-Bucket zu aktivieren.

**Aktivieren und Deaktivieren der Versionsverwaltung für einen S3-Allzweck-Buckets**

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die Amazon S3 S3-Konsole unter [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Wählen Sie im linken Navigationsbereich **Allzweck-Buckets** aus.

1. Wählen Sie in der Liste Buckets den Namen des Buckets aus, für den Sie die Versionsverwaltung aktivieren möchten.

1. Wählen Sie **Properties (Eigenschaften)**.

1. Wählen Sie unter **Bucket Versioning (Bucket-Versioning)** die Option **Edit (Bearbeiten)**.

1. Wählen Sie **Suspend (Anhalten)** oder **Enable (Aktivieren)** und dann **Save changes (Änderungen speichern)**.

**Anmerkung**  
Sie können die AWS Multi-Faktor-Authentifizierung (MFA) mit Versionierung verwenden. Wenn Sie MFA mit Versionierung verwenden, müssen Sie Ihre Zugangsschlüssel und einen gültigen Code vom MFA-Gerät AWS-Konto des Kontos angeben, um eine Objektversion dauerhaft zu löschen oder die Versionierung auszusetzen oder zu reaktivieren.   
Um MFA mit Versioning zu verwenden, aktivieren Sie `MFA Delete`. Sie können jedoch `MFA Delete` nicht mit der AWS-Managementkonsole aktivieren. Sie müssen die AWS Command Line Interface ()AWS CLI oder die API verwenden. Weitere Informationen finden Sie unter [Konfigurieren von MFA Delete](MultiFactorAuthenticationDelete.md).

## Mit dem AWS CLI
<a name="manage-versioning-examples-cli"></a>

Im folgenden Beispiel wird die Versionsverwaltung auf einem allgemeinen S3-Allzweck-Buckets aktiviert. 

```
aws s3api put-bucket-versioning --bucket amzn-s3-demo-bucket1 --versioning-configuration Status=Enabled
```

Das folgende Beispiel ermöglicht das Löschen der S3-Versionsverwaltung und Multi-Faktor-Authentifizierung (MFA) für einen Bucket. Für physische MFA-Geräte übergeben Sie im `--mfa` Parameter eine Verkettung der Seriennummer des MFA-Geräts, ein Leerzeichen und den Wert, der auf Ihrem Authentifizierungsgerät angezeigt wird.

```
aws s3api put-bucket-versioning --bucket amzn-s3-demo-bucket1 --versioning-configuration Status=Enabled,MFADelete=Enabled --mfa "SerialNumber 123456"
```

Das folgende Beispiel ermöglicht das Löschen der S3-Versionsverwaltung und Multi-Faktor-Authentifizierung (MFA) für einen Bucket. Für virtuelle MFA-Geräte übergeben Sie im `--mfa` Parameter eine Verkettung des MFA-Geräte-ARN, ein Leerzeichen und den Wert, der auf Ihrem Authentifizierungsgerät angezeigt wird.

```
aws s3api put-bucket-versioning --bucket amzn-s3-demo-bucket1 --versioning-configuration Status=Enabled,MFADelete=Enabled --mfa "arn:aws:iam::account-id:mfa/root-account-mfa-device 123789"
```

**Anmerkung**  
Die Verwendung von MFA Delete erfordert ein genehmigtes physisches oder virtuelles Authentifizierungsgerät. Weitere Informationen zur Verwendung von MFA Delete in Amazon S3 finden Sie unter [Konfigurieren von MFA Delete](MultiFactorAuthenticationDelete.md).

Weitere Informationen zum Aktivieren der Versionsverwaltung mit dem AWS CLI finden Sie [put-bucket-versioning](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-bucket-versioning.html)in der *AWS CLI Befehlsreferenz.*

## Verwenden von AWS SDKs
<a name="manage-versioning-examples-sdk"></a>

In den folgenden Beispielen wird die Versionsverwaltung für einen Bucket aktiviert und anschließend der Versionsstatus mithilfe von AWS SDK für Java und abgerufen. AWS SDK für .NET Informationen zur Verwendung von anderen AWS SDKs finden Sie im [AWS Developer](https://aws.amazon.com/code/) Center.

------
#### [ .NET ]

Informationen zum Einrichten und Ausführen der Codebeispiele finden Sie unter [Getting Started with the AWS SDK for .NET](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/net-dg-setup.html) im *AWS SDK for .NET Developer Guide*. 

```
using System;
using Amazon.S3;
using Amazon.S3.Model;

namespace s3.amazon.com.rproxy.goskope.com.docsamples
{
    class BucketVersioningConfiguration
    {
        static string bucketName = "*** bucket name ***";

        public static void Main(string[] args)
        {
            using (var client = new AmazonS3Client(Amazon.RegionEndpoint.USEast1))
            {
                try
                {
                    EnableVersioningOnBucket(client);
                    string bucketVersioningStatus = RetrieveBucketVersioningConfiguration(client);
                }
                catch (AmazonS3Exception amazonS3Exception)
                {
                    if (amazonS3Exception.ErrorCode != null &&
                        (amazonS3Exception.ErrorCode.Equals("InvalidAccessKeyId")
                        ||
                        amazonS3Exception.ErrorCode.Equals("InvalidSecurity")))
                    {
                        Console.WriteLine("Check the provided AWS Credentials.");
                        Console.WriteLine(
                        "To sign up for service, go to http://aws.amazon.com/s3");
                    }
                    else
                    {
                        Console.WriteLine(
                         "Error occurred. Message:'{0}' when listing objects",
                         amazonS3Exception.Message);
                    }
                }
            }

            Console.WriteLine("Press any key to continue...");
            Console.ReadKey();
        }

        static void EnableVersioningOnBucket(IAmazonS3 client)
        {

                PutBucketVersioningRequest request = new PutBucketVersioningRequest
                {
                    BucketName = bucketName,
                    VersioningConfig = new S3BucketVersioningConfig 
                    {
                        Status = VersionStatus.Enabled
                    }
                };

                PutBucketVersioningResponse response = client.PutBucketVersioning(request);
        }


        static string RetrieveBucketVersioningConfiguration(IAmazonS3 client)
        {
                GetBucketVersioningRequest request = new GetBucketVersioningRequest
                {
                    BucketName = bucketName
                };
 
                GetBucketVersioningResponse response = client.GetBucketVersioning(request);
                return response.VersioningConfig.Status;
            }
    }
}
```

------
#### [ Java ]

Anweisungen zum Erstellen und Testen eines funktionierenden Beispiels finden Sie unter [Erste Schritte](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/getting-started.html) im AWS SDK für Java Entwicklerhandbuch.

```
import java.io.IOException;

import com.amazonaws.auth.profile.ProfileCredentialsProvider;
import com.amazonaws.regions.Region;
import com.amazonaws.regions.Regions;
import com.amazonaws.services.s3.AmazonS3Client;
import com.amazonaws.services.s3.model.AmazonS3Exception;
import com.amazonaws.services.s3.model.BucketVersioningConfiguration;
import com.amazonaws.services.s3.model.SetBucketVersioningConfigurationRequest;

public class BucketVersioningConfigurationExample {
    public static String bucketName = "*** bucket name ***"; 
    public static AmazonS3Client s3Client;

    public static void main(String[] args) throws IOException {
        s3Client = new AmazonS3Client(new ProfileCredentialsProvider());
        s3Client.setRegion(Region.getRegion(Regions.US_EAST_1));
        try {

            // 1. Enable versioning on the bucket.
        	BucketVersioningConfiguration configuration = 
        			new BucketVersioningConfiguration().withStatus("Enabled");
            
			SetBucketVersioningConfigurationRequest setBucketVersioningConfigurationRequest = 
					new SetBucketVersioningConfigurationRequest(bucketName,configuration);
			
			s3Client.setBucketVersioningConfiguration(setBucketVersioningConfigurationRequest);
			
			// 2. Get bucket versioning configuration information.
			BucketVersioningConfiguration conf = s3Client.getBucketVersioningConfiguration(bucketName);
			 System.out.println("bucket versioning configuration status:    " + conf.getStatus());

        } catch (AmazonS3Exception amazonS3Exception) {
            System.out.format("An Amazon S3 error occurred. Exception: %s", amazonS3Exception.toString());
        } catch (Exception ex) {
            System.out.format("Exception: %s", ex.toString());
        }        
    }
}
```

------
#### [ Python ]

Das folgende Python-Beispiel erstellt einen Amazon-S3-Bucket, aktiviert ihn für das Versioning und konfiguriert einen Lebenszyklus, der nicht-aktuelle Objektversionen nach 7 Tagen ablaufen lässt.

```
def create_versioned_bucket(bucket_name, prefix):
    """
    Creates an Amazon S3 bucket, enables it for versioning, and configures a lifecycle
    that expires noncurrent object versions after 7 days.

    Adding a lifecycle configuration to a versioned bucket is a best practice.
    It helps prevent objects in the bucket from accumulating a large number of
    noncurrent versions, which can slow down request performance.

    Usage is shown in the usage_demo_single_object function at the end of this module.

    :param bucket_name: The name of the bucket to create.
    :param prefix: Identifies which objects are automatically expired under the
                   configured lifecycle rules.
    :return: The newly created bucket.
    """
    try:
        bucket = s3.create_bucket(
            Bucket=bucket_name,
            CreateBucketConfiguration={
                "LocationConstraint": s3.meta.client.meta.region_name
            },
        )
        logger.info("Created bucket %s.", bucket.name)
    except ClientError as error:
        if error.response["Error"]["Code"] == "BucketAlreadyOwnedByYou":
            logger.warning("Bucket %s already exists! Using it.", bucket_name)
            bucket = s3.Bucket(bucket_name)
        else:
            logger.exception("Couldn't create bucket %s.", bucket_name)
            raise

    try:
        bucket.Versioning().enable()
        logger.info("Enabled versioning on bucket %s.", bucket.name)
    except ClientError:
        logger.exception("Couldn't enable versioning on bucket %s.", bucket.name)
        raise

    try:
        expiration = 7
        bucket.LifecycleConfiguration().put(
            LifecycleConfiguration={
                "Rules": [
                    {
                        "Status": "Enabled",
                        "Prefix": prefix,
                        "NoncurrentVersionExpiration": {"NoncurrentDays": expiration},
                    }
                ]
            }
        )
        logger.info(
            "Configured lifecycle to expire noncurrent versions after %s days "
            "on bucket %s.",
            expiration,
            bucket.name,
        )
    except ClientError as error:
        logger.warning(
            "Couldn't configure lifecycle on bucket %s because %s. "
            "Continuing anyway.",
            bucket.name,
            error,
        )

    return bucket
```

------

# Konfigurieren von MFA Delete
<a name="MultiFactorAuthenticationDelete"></a>

Wenn Sie in Amazon-S3-Buckets mit S3-Versioning arbeiten, können Sie optional eine weitere Sicherheitsebene hinzufügen, indem Sie einen Bucket konfigurieren, um *MFA (multi-factor authentication) delete* zu aktivieren. 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.

Die MFA-Löschfunktion erfordert eine zusätzliche Authentifizierung für die folgenden Vorgänge:
+ Ändern des Versioning-Status Ihres Buckets
+ Dauerhaftes Löschen einer Objektversion

MFA Delete fordert zwei Authentifizierungsformen in Kombination:
+ Ihre Sicherheitsanmeldeinformationen
+ Die Verkettung einer gültigen Seriennummer, eines Leerzeichens und des sechsstelligen Codes, der auf einem zugelassenen Authentifizierungsgerät angezeigt wird

MFA Delete bietet damit zusätzliche Sicherheit, wenn beispielsweise Ihre Sicherheitsanmeldeinformationen nicht mehr vertrauenswürdig sind. MFA Delete kann dazu beitragen, versehentliche Bucket-Löschungen zu verhindern, indem der Benutzer, der die Löschaktion einleitet, verpflichtet wird, den physischen Besitz eines MFA-Geräts mit einem MFA-Code nachzuweisen und der Löschaktion eine zusätzliche Sicherheitsschicht hinzuzufügen.

Um Buckets zu identifizieren, für die MFA Delete aktiviert ist, können Sie 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 [ Bewertung Ihrer Speicheraktivität und -nutzung mit S3 Storage Lens](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens?icmpid=docs_s3_user_guide_MultiFactorAuthenticationDelete.html). Eine vollständige Liste der Metriken finden Sie im [Glossar der S3-Storage-Lens-Metriken](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens_metrics_glossary.html?icmpid=docs_s3_user_guide_MultiFactorAuthenticationDelete.html).

Der Bucket-Besitzer, derjenige AWS-Konto , der den Bucket erstellt hat (Root-Konto), und alle autorisierten Benutzer können die Versionierung aktivieren. Allerdings kann nur der Bucket-Eigentümer (Root-Konto) MFA Delete aktivieren. Weitere Informationen finden Sie unter [Securing Access to AWS Using MFA](https://aws.amazon.com/blogs/security/securing-access-to-aws-using-mfa-part-3/) im AWS Security Blog.

**Anmerkung**  
Um MFA Delete mit Versioning zu verwenden, aktivieren Sie `MFA Delete`. Sie können jedoch nicht `MFA Delete` mit der AWS-Managementkonsole aktivieren. Sie müssen die AWS Command Line Interface (AWS CLI) oder die API verwenden.   
Beispiele für die Verwendung von MFA Delete mit Versioning finden Sie im Abschnitt "Beispiele" im Thema [Aktivieren des Versioning für Buckets](manage-versioning-examples.md).  
Sie können MFA Löschen nicht mit Lebenszykluskonfigurationen verwenden. Weitere Informationen zu Lebenszykluskonfigurationen und deren Interaktion mit anderen Konfigurationen finden Sie unter [Wie S3-Lebenszyklus mit anderen Bucket-Konfigurationen interagiert.](lifecycle-and-other-bucket-config.md).

Für das Aktivieren oder Deaktivieren von MFA Delete verwenden Sie dieselbe API, die Sie für die Konfiguration des Versionings für einen Bucket verwenden. Amazon S3 speichert die MFA-Delete-Konfiguration in derselben *Versioning*-Subressource, in der auch der Versioning-Status des Buckets gespeichert ist.

```
<VersioningConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> 
  <Status>VersioningState</Status>
  <MfaDelete>MfaDeleteState</MfaDelete>  
</VersioningConfiguration>
```

Um MFA Delete zu nutzen, verwenden Sie ein Hardwaregerät oder ein virtuelles MFA-Gerät, um einen Authentifizierungscode zu generieren. Das folgende Beispiel zeigt einen generierten Authentifizierungscode, angezeigt auf einem Hardwaregerät.

![\[Ein Beispiel eines generierten Authentifizierungscodes, der auf einem Hardwaregerät angezeigt wird.\]](http://docs.aws.amazon.com/de_de/AmazonS3/latest/userguide/images/MFADevice.png)


MFA Delete und ein durch MFA geschützter API-Zugriff sind Funktionen, die Schutz in bestimmten Situationen bieten sollen. Sie konfigurieren MFA Delete für einen Bucket, um sicherzustellen, dass die Daten in Ihrem Bucket nicht versehentlich gelöscht werden können. Der durch MFA geschützte API-Zugriff wird verwendet, um einen zusätzlichen Authentifizierungsfaktor (MFA-Code) einzuführen, wenn Sie auf sensible Amazon-S3-Ressourcen zugreifen. Sie können für alle Vorgänge für Amazon-S3-Ressourcen fordern, dass sie mit temporären Anmeldeinformationen ausgeführt werden, die mit MFA erstellt wurden. Ein Beispiel finden Sie unter [Verlangen von MFA](example-bucket-policies.md#example-bucket-policies-MFA). 

Weitere Informationen zum Kauf und zur Aktivierung eines Authentifizierungsgeräts finden Sie unter [Multi-Faktor-Authentifizierung](https://aws.amazon.com/iam/details/mfa/).

## So aktivieren Sie das Löschen der S3-Versionsverwaltung und von MFA
<a name="enable-versioning-mfa-delete"></a>

### Mit dem AWS CLI
<a name="enable-versioning-mfa-delete-cli"></a>

Die Seriennummer ist die Nummer, die das MFA-Gerät eindeutig identifiziert. Bei physischen MFA-Geräten ist dies die eindeutige Seriennummer, die im Lieferumfang des Geräts enthalten ist. Bei virtuellen MFA-Geräten ist die Seriennummer der Geräte-ARN. Wenn Sie die folgenden Befehle verwenden, ersetzen Sie *user input placeholders* durch eigene Informationen.

Das folgende Beispiel ermöglicht das Löschen der S3-Versionsverwaltung und Multi-Faktor-Authentifizierung (MFA) für einen Bucket. Für physische MFA-Geräte übergeben Sie im `--mfa` Parameter eine Verkettung der Seriennummer des MFA-Geräts, ein Leerzeichen und den Wert, der auf Ihrem Authentifizierungsgerät angezeigt wird.

```
aws s3api put-bucket-versioning --bucket amzn-s3-demo-bucket1 --versioning-configuration Status=Enabled,MFADelete=Enabled --mfa "SerialNumber 123456"
```

Das folgende Beispiel ermöglicht das Löschen der S3-Versionsverwaltung und Multi-Faktor-Authentifizierung (MFA) für einen Bucket. Für virtuelle MFA-Geräte übergeben Sie im `--mfa` Parameter eine Verkettung des MFA-Geräte-ARN, ein Leerzeichen und den Wert, der auf Ihrem Authentifizierungsgerät angezeigt wird.

```
aws s3api put-bucket-versioning --bucket amzn-s3-demo-bucket1 --versioning-configuration Status=Enabled,MFADelete=Enabled --mfa "arn:aws:iam::account-id:mfa/root-account-mfa-device 123789"
```

Weitere Informationen finden Sie im AWS RePost-Artikel [Wie aktiviere ich MFA Delete für meinen Amazon S3 S3-Bucket?](https://repost.aws/knowledge-center/s3-bucket-mfa-delete) .

### Verwenden der REST-API
<a name="enable-versioning-mfa-delete-rest-api"></a>

Weitere Informationen zur Angabe von MFA Delete mithilfe der Amazon S3 S3-REST-API finden Sie unter [PutBucketVersioning](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketVersioning.html)*Amazon Simple Storage Service API-Referenz.*

# Arbeiten mit Objekten in einem versioning-fähigen Bucket
<a name="manage-objects-versioned-bucket"></a>

Objekte, die in einem Amazon-S3-Bucket gespeichert waren, bevor Sie den Versioning-Status einrichten, haben die Versions-ID `null`. Wenn Sie das Versioning aktivieren, ändern sich die in Ihrem Bucket vorhandenen Objekte nicht mehr. Was sich ändert, ist, wie Amazon S3 die Objekte in zukünftigen Anfragen verarbeitet.

**Übergang von Objektversionen**  
Sie können Lebenszyklus-Konfigurationsregeln für Objekte definieren, die einen definierten Lebenszyklus haben, um Objektversionen zu einem bestimmten Zeitpunkt in der Lebensdauer des Objekts in die Speicherklasse S3 Glacier Flexible Retrieval zu überführen. Weitere Informationen finden Sie unter [Verwalten des Lebenszyklus von Objekten](object-lifecycle-mgmt.md).

Die Themen in diesem Abschnitt erklären verschiedene Objekt-Vorgänge in einem Bucket mit aktiviertem Versioning. Weitere Informationen über das Versioning finden Sie unter [Beibehalten mehrerer Versionen von Objekten mit der S3-Versionsverwaltung](Versioning.md).

**Topics**
+ [Hinzufügen von Objekten zu versioning-fähigen Buckets](AddingObjectstoVersioningEnabledBuckets.md)
+ [Auflisten von Objekten in einem versioning-fähigen Bucket](list-obj-version-enabled-bucket.md)
+ [Abrufen von Objektversionen aus einem versioning-fähigen Bucket](RetrievingObjectVersions.md)
+ [Löschen von Objekten aus einem versioning-fähigen Bucket](DeletingObjectVersions.md)
+ [Konfigurieren von versionierten Objektberechtigungen](VersionedObjectPermissionsandACLs.md)

# Hinzufügen von Objekten zu versioning-fähigen Buckets
<a name="AddingObjectstoVersioningEnabledBuckets"></a>

Nachdem Sie das Versioning für einen Bucket aktiviert haben, fügt Amazon S3 jedem im Bucket gespeicherten Objekt automatisch eine eindeutige Versions-ID hinzu (mit `PUT`, `POST` oder `CopyObject`). 

Die folgende Abbildung zeigt, dass Amazon S3 jedem Objekt automatisch eine eindeutige Versions-ID hinzufügt, wenn es einem versioningfähigen Bucket hinzugefügt wird. 

![\[Abbildung, die eine eindeutige Versions-ID zeigt, die einem Objekt automatisch hinzugefügt wird, wenn es in einen versionsfähigen Bucket platziert wird.\]](http://docs.aws.amazon.com/de_de/AmazonS3/latest/userguide/images/versioning_PUT_versionEnabled.png)


**Anmerkung**  
Die von Amazon S3 zugewiesenen Versions-ID-Werte sind URL-sicher (können als Teil einer URI angegeben werden).

Weitere Informationen über das Versioning finden Sie unter [Beibehalten mehrerer Versionen von Objekten mit der S3-Versionsverwaltung](Versioning.md). Mithilfe der Konsole und der REST-API können Sie Objektversionen zu einem Bucket mit aktivierter Versionierung hinzufügen. AWS SDKs

## Verwenden der Konsole
<a name="add-obj-versioning-enabled-bucket-console"></a>

Detaillierte Anweisungen finden Sie unter [Objekte hochladen](upload-objects.md). 

## Mit dem AWS SDKs
<a name="add-obj-versioning-enabled-bucket-sdk"></a>

Beispiele für das Hochladen von Objekten mithilfe von AWS SDKs für Java, .NET und PHP finden Sie unter[Objekte hochladen](upload-objects.md). Die Beispiele für das Hochladen von Objekten in versioning-fähige und nicht versioning-fähige Buckets sind gleich, aber bei versioning-fähigen Buckets weist Amazon S3 eine Versionsnummer zu. Andernfalls ist die Versionsnummer null. 

Informationen zur Verwendung von anderen AWS SDKs finden Sie im [AWS Developer Center](https://aws.amazon.com/code/). 

## Verwenden der REST-API
<a name="add-obj-versioning-enabled-bucket-rest"></a>

**Hinzufügen von Objekten zu versioning-fähigen Buckets**

1. Aktivieren des Versionings für einen Bucket mit einer `PutBucketVersioning`-Anforderung.

   Weitere Informationen finden Sie unter [https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTVersioningStatus.html](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTVersioningStatus.html) in der *API-Referenz zu Amazon Simple Storage Service*.

1. Senden Sie eine `PUT`-, `POST`- oder `CopyObject`-Anforderung, um ein Objekt im Bucket zu speichern.

Wenn Sie einem versioning-fähigen Bucket ein Objekt hinzufügen, gibt Amazon S3 die Versions-ID des Objekts im Antwort-Header `x-amz-version-id` zurück, wie im folgenden Beispiel gezeigt.

```
1. x-amz-version-id: 3/L4kqtJlcpXroDTDmJ+rmSpXd3dIbrHY
```

# Auflisten von Objekten in einem versioning-fähigen Bucket
<a name="list-obj-version-enabled-bucket"></a>

Dieser Abschnitt zeigt Beispiele, wie Objektversionen aus einem versioning-fähigen Bucket aufgelistet werden. Amazon S3 speichert Versionsinformationen zu Objekten in der *versions*-Subressource, die dem Bucket zugeordnet ist. Weitere Informationen finden Sie unter [Konfigurationsoptionen für Allzweck-Buckets](UsingBucket.md#bucket-config-options-intro). Um die Objekte in einem versionsfähigen Bucket aufzulisten, benötigen Sie die `ListBucketVersions`-Berechtigung.

## Verwenden der S3-Konsole
<a name="view-object-versions"></a>

Befolgen Sie diese Schritte, um die Amazon-S3-Konsole zu verwenden, um die verschiedenen Versionen eines Objekts anzuzeigen.

**Mehrere Versionen eines Objekts anzeigen**

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die Amazon S3 S3-Konsole unter [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

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

1. Um eine Liste der Versionen der Objekte in dem Bucket anzuzeigen, wählen Sie den Schalter **Show versions** (Versionen anzeigen). 

   Die Konsole zeigt für jede Objektversion eine eindeutige Versions-ID, das Datum und die Uhrzeit, wann das Objekt erstellt wurde, sowie weitere Eigenschaften an. (Objekte, die in Ihrem Bucket gespeichert waren, bevor Sie den Versioning-Status einrichten, haben die Versions-ID **null**.)

   Um die Objekte ohne die Versionen aufzulisten, wählen Sie den Schalter **List versions (Versionen auflisten)** .

Objektversionen können auch in der Objektübersicht auf der Konsole angezeigt, heruntergeladen und gelöscht werden. Weitere Informationen finden Sie unter [Anzeigen von Objekteigenschaften in der Amazon-S3-Konsole](view-object-properties.md).

**Anmerkung**  
 Um auf Objektversionen zuzugreifen, die älter als 300 Versionen sind, müssen Sie die AWS CLI oder die URL des Objekts verwenden.

**Wichtig**  
Sie können den Löschvorgang für ein Objekt nur rückgängig machen, wenn seine aktuelle Version gelöscht wurde. Es ist nicht möglich, das Löschen einer vorherigen Version eines Objekts rückgängig zu machen, das gelöscht wurde. Weitere Informationen finden Sie unter [Beibehalten mehrerer Versionen von Objekten mit der S3-Versionsverwaltung](Versioning.md).

## Verwenden Sie den AWS SDKs
<a name="list-obj-version-enabled-bucket-sdk-examples"></a>

Die Beispiele in diesem Abschnitt veranschaulichen, wie Sie eine Objektliste aus einem versioning-fähigen Bucket abrufen. Jede Anforderung gibt bis zu 1000 Versionen zurück, sofern Sie keine kleinere Anzahl festlegen. Wenn die Versionen im Bucket dieses Limit überschreiten, senden Sie eine Reihe von Anforderungen, um die Liste aller Versionen abzurufen. Dieser Vorgang zur „seitenweisen“ Rückgabe von Ergebnissen wird als *Paginierung* bezeichnet.

Um zu veranschaulichen, wie Paginierung funktioniert, limitieren die Beispiele jede Antwort auf zwei Objektversionen. Nachdem die erste Seite mit Ergebnissen abgerufen wurde, wird in jedem Beispiel überprüft, ob die Versionsliste abgeschnitten wurde. Wurde sie abgeschnitten, dann wird im Beispiel mit dem seitenweisen Abruf fortgefahren, bis alle Versionen abgerufen wurden. 

**Anmerkung**  
Die folgenden Beispiele funktionieren auch bei einem Bucket, der versioning-fähig ist, oder bei Objekten ohne individuelle Versionen. In solchen Fällen gibt Amazon S3 die Objektliste mit der Versions-ID von `null` zurück.

 Informationen zur Verwendung von anderen AWS SDKs finden Sie im [AWS Developer](https://aws.amazon.com/code/) Center. 

------
#### [ Java ]

Anweisungen zum Erstellen und Testen eines Arbeitsbeispiels finden Sie unter [Erste Schritte](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/getting-started.html) im AWS SDK für Java Entwicklerhandbuch.

```
import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import com.amazonaws.auth.profile.ProfileCredentialsProvider;
import com.amazonaws.regions.Regions;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
import com.amazonaws.services.s3.model.ListVersionsRequest;
import com.amazonaws.services.s3.model.S3VersionSummary;
import com.amazonaws.services.s3.model.VersionListing;

public class ListKeysVersioningEnabledBucket {

    public static void main(String[] args) {
        Regions clientRegion = Regions.DEFAULT_REGION;
        String bucketName = "*** Bucket name ***";

        try {
            AmazonS3 s3Client = AmazonS3ClientBuilder.standard()
                    .withCredentials(new ProfileCredentialsProvider())
                    .withRegion(clientRegion)
                    .build();

            // Retrieve the list of versions. If the bucket contains more versions
            // than the specified maximum number of results, Amazon S3 returns
            // one page of results per request.
            ListVersionsRequest request = new ListVersionsRequest()
                    .withBucketName(bucketName)
                    .withMaxResults(2);
            VersionListing versionListing = s3Client.listVersions(request);
            int numVersions = 0, numPages = 0;
            while (true) {
                numPages++;
                for (S3VersionSummary objectSummary : versionListing.getVersionSummaries()) {
                    System.out.printf("Retrieved object %s, version %s\n",
                            objectSummary.getKey(),
                            objectSummary.getVersionId());
                    numVersions++;
                }
                // Check whether there are more pages of versions to retrieve. If
                // there are, retrieve them. Otherwise, exit the loop.
                if (versionListing.isTruncated()) {
                    versionListing = s3Client.listNextBatchOfVersions(versionListing);
                } else {
                    break;
                }
            }
            System.out.println(numVersions + " object versions retrieved in " + numPages + " pages");
        } catch (AmazonServiceException e) {
            // The call was transmitted successfully, but Amazon S3 couldn't process
            // it, so it returned an error response.
            e.printStackTrace();
        } catch (SdkClientException e) {
            // Amazon S3 couldn't be contacted for a response, or the client
            // couldn't parse the response from Amazon S3.
            e.printStackTrace();
        }
    }
}
```

------
#### [ .NET ]

Informationen zum Einrichten und Ausführen der Codebeispiele finden Sie unter [Getting Started with the AWS SDK for .NET](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/net-dg-setup.html) im *AWS SDK for .NET Developer Guide*. 

```
using Amazon;
using Amazon.S3;
using Amazon.S3.Model;
using System;
using System.Threading.Tasks;

namespace Amazon.DocSamples.S3
{
    class ListObjectsVersioningEnabledBucketTest
    {
        static string bucketName = "*** bucket name ***";
        // Specify your bucket region (an example region is shown).
        private static readonly RegionEndpoint bucketRegion = RegionEndpoint.USWest2;
        private static IAmazonS3 s3Client;

        public static void Main(string[] args)
        {
            s3Client = new AmazonS3Client(bucketRegion);
            GetObjectListWithAllVersionsAsync().Wait();
        }

        static async Task GetObjectListWithAllVersionsAsync()
        {
            try
            {
                ListVersionsRequest request = new ListVersionsRequest()
                {
                    BucketName = bucketName,
                    // You can optionally specify key name prefix in the request
                    // if you want list of object versions of a specific object.

                    // For this example we limit response to return list of 2 versions.
                    MaxKeys = 2
                };
                do
                {
                    ListVersionsResponse response = await s3Client.ListVersionsAsync(request); 
                    // Process response.
                    foreach (S3ObjectVersion entry in response.Versions)
                    {
                        Console.WriteLine("key = {0} size = {1}",
                            entry.Key, entry.Size);
                    }

                    // If response is truncated, set the marker to get the next 
                    // set of keys.
                    if (response.IsTruncated)
                    {
                        request.KeyMarker = response.NextKeyMarker;
                        request.VersionIdMarker = response.NextVersionIdMarker;
                    }
                    else
                    {
                        request = null;
                    }
                } while (request != null);
            }
            catch (AmazonS3Exception e)
            {
                Console.WriteLine("Error encountered on server. Message:'{0}' when writing an object", e.Message);
            }
            catch (Exception e)
            {
                Console.WriteLine("Unknown encountered on server. Message:'{0}' when writing an object", e.Message);
            }
        }
    }
}
```

------

## Verwenden der REST-API
<a name="ListingtheObjectsinaVersioningEnabledBucket"></a>

**Example – Alle Objektversionen in einem Bucket auflisten**  
Um alle Versionen aller Objekte in einem Bucket aufzulisten, verwenden Sie die `versions`-Subressource in einer `GET Bucket`-Anfrage. Amazon S3 kann maximal 1000 Objekte abrufen. Jede Objektversion zählt als vollständiges Objekt. Wenn ein Bucket also zwei Schlüssel enthält (z. B. `photo.gif` und `picture.jpg`) und der erste Schlüssel 990 Versionen und der zweite Schlüssel 400 Versionen hat, ruft eine einzelne Abfrage alle 990 Versionen von `photo.gif` und nur die 10 neuesten Versionen von `picture.jpg` ab.  
Amazon S3 gibt Objektversionen in der Reihenfolge zurück, in der sie gespeichert wurden, wobei die zuletzt gespeicherte zuerst zurückgegeben wird.  
Geben Sie in einer `GET Bucket`-Anforderung die `versions`-Subressource an.  

```
1. GET /?versions HTTP/1.1
2. Host: bucketName.s3.amazonaws.com
3. Date: Wed, 28 Oct 2009 22:32:00 +0000
4. Authorization: AWS AKIAIOSFODNN7EXAMPLE:0RQf4/cRonhpaBX5sCYVf1bNRuU=
```

**Example – Abruf aller Versionen eines Schlüssels**  
 Wenn Sie eine Untermenge von Objektversionen abrufen möchten, verwenden Sie die Anforderungsparameter für `GET Bucket`. Weitere Informationen finden Sie unter [https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGET.html](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGET.html).   

1. Setzen Sie den Parameter `prefix` auf den Schlüssel des Objekts, das Sie abrufen wollen.

1. Senden Sie eine `GET Bucket`-Anforderung unter Verwendung der `versions`-Subressource und `prefix`.

   `GET /?versions&prefix=objectName HTTP/1.1`

**Example – Abrufen von Objekten unter Verwendung eines Präfix**  
Das folgende Beispiel ruft Objekte ab, deren Schlüssel ist oder damit beginn `myObject`.  

```
1. GET /?versions&prefix=myObject HTTP/1.1
2. Host: bucket.s3.amazonaws.com
3. Date: Wed, 28 Oct 2009 22:32:00 GMT
4. Authorization: AWS AKIAIOSFODNN7EXAMPLE:0RQf4/cRonhpaBX5sCYVf1bNRuU=
```
Sie können die anderen Anforderungsparameter verwenden, um eine Untermenge aller Versionen des Objekts abzurufen. Weitere Informationen finden Sie unter [https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGET.html](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGET.html) in der *API-Referenz zu Amazon Simple Storage Service*.

**Example – Abrufen einer Liste zusätzlicher Objekte, falls die Antwort gekürzt wurde**  
Wenn die Anzahl der Objekte, die in einer `GET`-Anforderung zurückgegeben werden können, den Wert `max-keys` überschreitet, enthält die Antwort `<isTruncated>true</isTruncated>`, ebenso wie den ersten Schlüssel (in `NextKeyMarker`) und die erste Versions-ID (in `NextVersionIdMarker`), die die Anforderungskriterien erfüllen, aber nicht zurückgegeben wurden. Diese zurückgegebenen Werte verwenden Sie als Ausgangspunkt in einer nachfolgenden Anforderung, um die zusätzlichen Objekte abzurufen, die die `GET`-Anforderung erfüllen.   
Gehen Sie wie folgt vor, um zusätzlichen Objekte abzurufen, die die ursprüngliche `GET Bucket versions`-Anforderung von einem Bucket erfüllen. Weitere Informationen zu `key-marker`, `version-id-marker`, `NextKeyMarker` und `NextVersionIdMarker` finden Sie unter [https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGET.html](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGET.html) in *Amazon Simple Storage Service – API-Referenz*.  
Im Folgenden finden Sie zusätzliche Antworten, die die ursprüngliche `GET`-Anforderung erfüllen:  
+ Setzen Sie den Wert von `key-marker` auf den Schlüssel, der in `NextKeyMarker` in der vorherigen Antwort zurückgegeben wurde.
+ Setzen Sie den Wert von `version-id-marker` auf die Versions-ID, die in `NextVersionIdMarker` in der vorherigen Antwort zurückgegeben wurde.
+ Senden Sie eine `GET Bucket versions`-Anforderung mit `key-marker` und `version-id-marker`.

**Example – Abrufen von Objekten ab einem bestimmten Schlüssel und einer bestimmten Versions-ID**  

```
1. GET /?versions&key-marker=myObject&version-id-marker=298459348571 HTTP/1.1
2. Host: bucket.s3.amazonaws.com
3. Date: Wed, 28 Oct 2009 22:32:00 GMT
4. Authorization: AWS AKIAIOSFODNN7EXAMPLE:0RQf4/cRonhpaBX5sCYVf1bNRuU=
```

## Verwenden von AWS CLI
<a name="list-obj-version-enabled-bucket-cli"></a>

Der folgende Befehl gibt Metadaten zu allen Versionen der Objekte in einem Bucket zurück. 

```
aws s3api list-object-versions --bucket amzn-s3-demo-bucket1
```

Weitere Informationen zu `list-object-versions` finden Sie unter [https://docs.aws.amazon.com/cli/latest/reference/s3api/list-object-versions.html](https://docs.aws.amazon.com/cli/latest/reference/s3api/list-object-versions.html) in der *AWS CLI -Befehlsreferenz*.

# Abrufen von Objektversionen aus einem versioning-fähigen Bucket
<a name="RetrievingObjectVersions"></a>

Das Versioning in Amazon S3 ist eine Möglichkeit, mehrere Varianten eines Objekts im selben Bucket zu behalten. Eine einfache `GET`-Anforderung ruft die aktuelle Version eines Objekts ab. Die folgende Abbildung zeigt, wie `GET` die aktuelle Version des Objekts zurückgibt, `photo.gif`.

![\[Abbildung, die zeigt, wie GET die aktuelle Version des Objekts zurückgibt.\]](http://docs.aws.amazon.com/de_de/AmazonS3/latest/userguide/images/versioning_GET_NoVersionID.png)


Um eine spezifische Version abzurufen, müssen Sie ihre Versions-ID angeben. Die folgende Abbildung zeigt, dass eine `GET versionId`-Anforderung die angegebene Version des Objekts zurückgibt (nicht unbedingt die aktuelle).

![\[Abbildung, die zeigt, wie eine GET versionId-Anforderung die angegebene Version des Objekts abruft.\]](http://docs.aws.amazon.com/de_de/AmazonS3/latest/userguide/images/versioning_GET_Versioned.png)


Sie können Objektversionen in Amazon S3 mithilfe der Konsole oder der REST-API abrufen. AWS SDKs

**Anmerkung**  
 Um auf Objektversionen zuzugreifen, die älter als 300 Versionen sind, müssen Sie die AWS CLI oder die URL des Objekts verwenden.

## Verwenden der S3-Konsole
<a name="retrieving-object-versions"></a>

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die Amazon S3 S3-Konsole unter [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

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

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

1. Wählen Sie **Versions (Versionen)**.

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

1. Aktivieren Sie das Kontrollkästchen neben der **Version ID (Versions-ID)** für die Versionen, die Sie abrufen möchten.

1. Wählen Sie **Actions (Aktionen)**, wählen Sie **Download (Herunterladen)** und speichern Sie das Objekt.

Objektversionen können auch in der Objektübersicht angezeigt, heruntergeladen und gelöscht werden. Weitere Informationen finden Sie unter [Anzeigen von Objekteigenschaften in der Amazon-S3-Konsole](view-object-properties.md).

**Wichtig**  
Sie können den Löschvorgang für ein Objekt nur rückgängig machen, wenn seine aktuelle Version gelöscht wurde. Es ist nicht möglich, das Löschen einer vorherigen Version eines Objekts rückgängig zu machen, das gelöscht wurde. Weitere Informationen finden Sie unter [Beibehalten mehrerer Versionen von Objekten mit der S3-Versionsverwaltung](Versioning.md).

## Verwenden Sie den AWS SDKs
<a name="retrieve-obj-version-sdks"></a>

Die Beispiele für das Hochladen 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.

Beispiele für das Herunterladen von Objekten mithilfe AWS SDKs von Java, .NET und PHP finden Sie unter [Objekte herunterladen](https://docs.aws.amazon.com/AmazonS3/latest/userguide/download-objects.html).

Beispiele für das Auflisten der Version von Objekten, die AWS SDKs für.NET und Rust verwenden, finden Sie unter [Auflisten der Version von Objekten in einem Amazon S3 S3-Bucket](https://docs.aws.amazon.com/code-library/latest/ug/s3_example_s3_ListObjectVersions_section.html).

## Verwenden der REST-API
<a name="retrieve-obj-version-rest"></a>

**Abrufen einer spezifischen Objektversion**

1. Setzen Sie den Parameter `versionId` auf die ID der Version des Objekts, die Sie abrufen wollen.

1. Senden Sie eine `GET Object versionId`-Anforderung.

**Example – Abrufen eines versionierten Objekts**  
Die folgende Anforderung ruft die Version `L4kqtJlcpXroDTDmpUMLUo` von ab `my-image.jpg`.  

```
1. GET /my-image.jpg?versionId=L4kqtJlcpXroDTDmpUMLUo HTTP/1.1
2. Host: bucket.s3.amazonaws.com
3. Date: Wed, 28 Oct 2009 22:32:00 GMT
4. Authorization: AWS AKIAIOSFODNN7EXAMPLE:0RQf4/cRonhpaBX5sCYVf1bNRuU=
```

Sie können nur die Metadaten eines Objekts (nicht den Inhalt) abrufen. Weitere Informationen finden Sie unter [Abrufen der Metadaten einer Objektversion](RetMetaOfObjVersion.md).

Informationen zum Wiederherstellen einer früheren Objektversion finden Sie unter [Wiederherstellen früherer Versionen](RestoringPreviousVersions.md).

# Abrufen der Metadaten einer Objektversion
<a name="RetMetaOfObjVersion"></a>

Wenn Sie nur die Metadaten eines Objekts abrufen wollen (nicht seinen Inhalt), verwenden Sie die `HEAD`-Operation. Standardmäßig erhalten Sie die Metadaten der aktuellsten Version. Um die Metadaten einer spezifischen Objektversion abzurufen, müssen Sie ihre Versions-ID angeben.

**Abruf der Metadaten einer Objektversion**

1. Setzen Sie den Parameter `versionId` auf die ID der Version des Objekts, dessen Metadaten Sie abrufen wollen.

1. Senden Sie eine `HEAD Object versionId`-Anforderung.

**Example – Abrufen der Metadaten eines versionierten Objekts**  
Die folgende Anforderung ruft die Metadaten der Version `3HL4kqCxf3vjVBH40Nrjfkd` von `my-image.jpg` ab.  

```
1. HEAD /my-image.jpg?versionId=3HL4kqCxf3vjVBH40Nrjfkd HTTP/1.1
2. Host: bucket.s3.amazonaws.com
3. Date: Wed, 28 Oct 2009 22:32:00 GMT
4. Authorization: AWS AKIAIOSFODNN7EXAMPLE:0RQf4/cRonhpaBX5sCYVf1bNRuU=
```

Nachfolgend ist eine Beispielantwort angezeigt.

```
 1. HTTP/1.1 200 OK
 2. x-amz-id-2: ef8yU9AS1ed4OpIszj7UDNEHGran
 3. x-amz-request-id: 318BC8BC143432E5
 4. x-amz-version-id: 3HL4kqtJlcpXroDTDmjVBH40Nrjfkd
 5. Date: Wed, 28 Oct 2009 22:32:00 GMT
 6. Last-Modified: Sun, 1 Jan 2006 12:00:00 GMT
 7. ETag: "fba9dede5f27731c9771645a39863328"
 8. Content-Length: 434234
 9. Content-Type: text/plain
10. Connection: close
11. Server: AmazonS3
```

# Wiederherstellen früherer Versionen
<a name="RestoringPreviousVersions"></a>

Sie können Versioning verwenden, um frühere Versionen eines Objekts abzurufen. Hierfür gibt es zwei Ansätze:
+ Kopieren einer vorhergehenden Version des Objekts in denselben Bucket.

  Das kopierte Objekt wird zur aktuellen Version dieses Objekts, und alle Objektversionen werden beibehalten.
+ Dauerhaftes Löschen der aktuellen Version des Objekts

  Wenn Sie die aktuelle Objektversion löschen, wandeln Sie letztlich die nicht vorherige Version in die aktuelle Version dieses Objekts um.

Alle Objektversionen werden aufbewahrt, deshalb können Sie eine frühere Version zur aktuellen Version machen, indem Sie eine spezifische Version des Objekts in denselben Bucket kopieren. In der folgenden Abbildung wird das Quellobjekt (ID = 111111) in denselben Bucket kopiert. Amazon S3 stellt eine neue ID (88778877) bereit und diese wird zur aktuellen Version des Objekts. Der Bucket enthält jetzt also die ursprüngliche Objektversion (111111) und kopiert seine Kopie (88778877). Weitere Informationen zum Abrufen einer früheren Version und zum anschließenden Hochladen, um sie zur aktuellen Version zu machen, finden Sie unter [Objektversionen aus einem versionsfähigen Bucket abrufen](https://docs.aws.amazon.com/AmazonS3/latest/userguide/RetrievingObjectVersions.html) und [Objekte hochladen](https://docs.aws.amazon.com/AmazonS3/latest/userguide/upload-objects.html).

![\[Abbildung, die zeigt, wie eine bestimmte Version eines Objekts in denselben Bucket kopiert wird, um daraus die aktuelle Version zu machen.\]](http://docs.aws.amazon.com/de_de/AmazonS3/latest/userguide/images/versioning_COPY2.png)


Eine nachfolgende `GET`-Operation ruft Version 88778877 ab.

Die folgende Abbildung zeigt, wie die aktuelle Version (121212) eines Objekts gelöscht wird, sodass die vorhergehende Version (111111) zum aktuellen Objekt wird. Weitere Informationen zum Löschen eines Objekts finden Sie unter [Löschen eines einzelnen Objekts](https://docs.aws.amazon.com/AmazonS3/latest/userguide/delete-objects.html).

![\[Abbildung, die zeigt, dass durch das Löschen der aktuellen Version eines Objekts die vorhergehende Version zum aktuellen Objekt wird.\]](http://docs.aws.amazon.com/de_de/AmazonS3/latest/userguide/images/versioning_COPY_delete2.png)


Ein weiterer `GET` ruft die Version 111111 ab.

**Anmerkung**  
Wenn Sie Objektversionen in Batches wiederherstellen möchten, können Sie [die `CopyObject`-Operation](https://docs.aws.amazon.com/AmazonS3/latest/userguide/batch-ops-copy-object.html) verwenden. Die `CopyObject`-Operation kopiert jedes im Manifest angegebene Objekt. Objekte werden jedoch nicht zwingend in derselben Reihenfolge kopiert, in der sie im Manifest erscheinen. Wenn für versionierte Buckets die Beibehaltung der aktuellen/nicht aktuellen Versionsreihenfolge wichtig ist, sollten Sie zuerst alle nicht aktuellen Versionen kopieren. Kopieren Sie dann, nachdem der erste Auftrag abgeschlossen ist, die aktuellen Versionen in einen nachfolgenden Auftrag.

## So stellen Sie frühere Objektversionen wieder her
<a name="restoring-obj-version-version-enabled-bucket-examples"></a>

Weitere Anleitungen zur Wiederherstellung gelöschter Objekte finden Sie unter [Wie kann ich ein Amazon S3 S3-Objekt abrufen, das in einem Bucket mit Versionierung gelöscht wurde?](https://repost.aws/knowledge-center/s3-undelete-configuration) im AWS re:Post Knowledge Center.

### Verwenden der S3-Konsole
<a name="retrieving-object-versions"></a>

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die Amazon S3 S3-Konsole unter [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

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

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

1. Wählen Sie **Versions (Versionen)**.

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

1. Aktivieren Sie das Kontrollkästchen neben der **Version ID (Versions-ID)** für die Versionen, die Sie abrufen möchten.

1. Wählen Sie **Actions (Aktionen)**, wählen Sie **Download (Herunterladen)** und speichern Sie das Objekt.

Objektversionen können auch in der Objektübersicht angezeigt, heruntergeladen und gelöscht werden. Weitere Informationen finden Sie unter [Anzeigen von Objekteigenschaften in der Amazon-S3-Konsole](view-object-properties.md).

**Wichtig**  
Sie können den Löschvorgang für ein Objekt nur rückgängig machen, wenn seine aktuelle Version gelöscht wurde. Es ist nicht möglich, das Löschen einer vorherigen Version eines Objekts rückgängig zu machen, das gelöscht wurde. Weitere Informationen finden Sie unter [Beibehalten mehrerer Versionen von Objekten mit der S3-Versionsverwaltung](Versioning.md).

### Verwenden Sie den AWS SDKs
<a name="restoring-obj-version-version-enabled-bucket-sdks"></a>

Informationen zur Verwendung von anderen AWS SDKs finden Sie im [AWS Developer Center](https://aws.amazon.com/code/). 

------
#### [ Python ]

Im folgenden Python-Codebeispiel wird die vorherige Version eines versionierten Objekts wiederhergestellt, indem alle Versionen gelöscht werden, die nach der angegebenen Rollback-Version aufgetreten sind.

```
def rollback_object(bucket, object_key, version_id):
    """
    Rolls back an object to an earlier version by deleting all versions that
    occurred after the specified rollback version.

    Usage is shown in the usage_demo_single_object function at the end of this module.

    :param bucket: The bucket that holds the object to roll back.
    :param object_key: The object to roll back.
    :param version_id: The version ID to roll back to.
    """
    # Versions must be sorted by last_modified date because delete markers are
    # at the end of the list even when they are interspersed in time.
    versions = sorted(
        bucket.object_versions.filter(Prefix=object_key),
        key=attrgetter("last_modified"),
        reverse=True,
    )

    logger.debug(
        "Got versions:\n%s",
        "\n".join(
            [
                f"\t{version.version_id}, last modified {version.last_modified}"
                for version in versions
            ]
        ),
    )

    if version_id in [ver.version_id for ver in versions]:
        print(f"Rolling back to version {version_id}")
        for version in versions:
            if version.version_id != version_id:
                version.delete()
                print(f"Deleted version {version.version_id}")
            else:
                break

        print(f"Active version is now {bucket.Object(object_key).version_id}")
    else:
        raise KeyError(
            f"{version_id} was not found in the list of versions for " f"{object_key}."
        )
```

------

# Löschen von Objekten aus einem versioning-fähigen Bucket
<a name="DeletingObjectVersions"></a>

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 für Ihr Bucket die Versionsverwaltung aktiviert oder 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 des Lebenszyklus von Objekten](object-lifecycle-mgmt.md) und [Beispiele für S3-Lebenszykluskonfigurationen](lifecycle-configuration-examples.md).

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](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-lens-optimize-storage.html?icmpid=docs_s3_user_guide_DeletingObjectVersions.html). Eine vollständige Liste der Metriken finden Sie im [Glossar der S3-Storage-Lens-Metriken](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens_metrics_glossary.html?icmpid=docs_s3_user_guide_replication.html).

**Anmerkung**  
 Für jede Version eines gespeicherten und übertragenen Objekts gelten die Standardpreise von Amazon S3. Dies gilt auch für nicht aktuelle Objektversionen. Weitere Informationen finden Sie unter [Amazon S3 – Preise](https://aws.amazon.com/s3/pricing/). 

## Löschen von Anwendungsfällen
<a name="delete-request-use-cases"></a>

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](DeleteMarker.md).

  Die folgende Abbildung zeigt, dass ein einfaches `DELETE` das spezifizierte Objekt nicht wirklich löscht. Stattdessen fügt Amazon S3 eine Löschmarkierung ein.  
![\[Abbildung, die das Einfügen einer Löschmarkierung zeigt.\]](http://docs.aws.amazon.com/de_de/AmazonS3/latest/userguide/images/versioning_DELETE_versioningEnabled.png)
+ Um Objektversionen dauerhaft zu löschen, müssen Sie `DELETE Object versionId` verwenden.

  Die folgende Abbildung zeigt, dass das beim Löschen einer angegebenen Objektversion dieses Objekt dauerhaft gelöscht wird.  
![\[Diagramm, das zeigt, wie DELETE Object versionId eine bestimmte Objektversion dauerhaft löscht.\]](http://docs.aws.amazon.com/de_de/AmazonS3/latest/userguide/images/versioning_DELETE_versioningEnabled2.png)

## Löschen von Objektversionen
<a name="delete-object-version"></a>

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

### Verwenden der S3-Konsole
<a name="deleting-object-versions"></a>

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die Amazon S3 S3-Konsole unter [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

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

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

1. Wählen Sie **Versions (Versionen)**.

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

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

1. Wählen Sie **Löschen** aus.

1. 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.

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

   Amazon S3 löscht die Objektversion.

### Verwenden Sie den AWS SDKs
<a name="delete-obj-version-version-enabled-bucket-sdks"></a>

Beispiele für das Löschen von Objekten mithilfe von AWS SDKs für Java, .NET und PHP finden Sie unter[Löschen von Amazon-S3-Objekten](DeletingObjects.md). 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 von anderen AWS SDKs finden Sie im [AWS Developer Center](https://aws.amazon.com/code/). 

------
#### [ Python ]

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
```

------

### Verwenden der REST-API
<a name="delete-obj-version-enabled-bucket-rest"></a>

**Löschen einer spezifischen Objektversion**
+ Geben Sie in einem `DELETE` eine Versions-ID ein.

**Example – Löschen einer spezifischen Version**  
Im folgenden Beispiel wird die Version `UIORUnfnd89493jJFJ` von `photo.gif` gelöscht.  

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

### Mit dem AWS CLI
<a name="delete-obj-version-enabled-bucket-cli"></a>

Der folgende Befehl löscht ein Objekt namens test.txt aus einem Bucket mit dem Namen `amzn-s3-demo-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 amzn-s3-demo-bucket1 --key test.txt --version-id versionID
```

Weitere Informationen zu `delete-object` finden Sie unter [https://docs.aws.amazon.com/cli/latest/reference/s3api/delete-object.html](https://docs.aws.amazon.com/cli/latest/reference/s3api/delete-object.html) in der *AWS CLI -Befehlsreferenz*.

Weitere Informationen zum Löschen von Objektversionen finden Sie in den folgenden Themen:
+ [Arbeiten mit Löschmarkierungen](DeleteMarker.md)
+ [Entfernen von Löschmarkierungen, um eine ältere Version aktuell zu machen](ManagingDelMarkers.md#RemDelMarker)
+ [Löschen eines Objekts aus einem MFA-Delete-fähigen Bucket](UsingMFADelete.md)

# Arbeiten mit Löschmarkierungen
<a name="DeleteMarker"></a>

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` Anfrage mithilfe eines AWS Identity and Access Management (IAM-) Benutzers oder einer Rolle mit den entsprechenden Berechtigungen stellen.

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 [Überwachung Ihrer Speicheraktivität und -nutzung mit Amazon S3 Storage Lens](storage_lens.md) und [Amazon S3-Storage-Lens-Metrikglossar](storage_lens_metrics_glossary.md).

Weitere Informationen zu Schlüsselnamen finden Sie unter [Markieren von Amazon-S3-Objekten](object-keys.md). Informationen zum Löschen von Löschmarkierungen finden Sie unter [Verwalten von Löschmarkierungen](ManagingDelMarkers.md). 

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`
+ Ein Antwortheader `Last-Modified: timestamp` (nur bei Verwendung der [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html)API-Operationen [HeadObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadObject.html)oder)

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\]](http://docs.aws.amazon.com/de_de/AmazonS3/latest/userguide/images/versioning_DELETE_NoObjectFound.png)


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.\]](http://docs.aws.amazon.com/de_de/AmazonS3/latest/userguide/images/versioning_DELETE_NoObjectFound_405.png)


Auch wenn sie überschrieben werden, bleiben Löschmarken in Ihren Objektversionen erhalten. Die einzige Methode, Löschmarkierungen (und andere Versionen eines Objekts) aufzulisten, besteht in der Verwendung einer [https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectVersions.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectVersions.html) Anforderung. Sie können diese Anfrage in der stellen, AWS-Managementkonsole indem Sie Ihre Objekte in einem Allzweck-Bucket für allgemeine Zwecke auflisten und **Versionen anzeigen** auswählen. Weitere Informationen finden Sie unter [Auflisten von Objekten in einem versioning-fähigen Bucket](list-obj-version-enabled-bucket.md).

Die folgende Abbildung zeigt, dass eine [https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html)- oder [https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html)-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\]](http://docs.aws.amazon.com/de_de/AmazonS3/latest/userguide/images/versioning_GETBucketwithDeleteMarkers.png)


# Verwalten von Löschmarkierungen
<a name="ManagingDelMarkers"></a>

## Konfigurieren des Lebenszyklus zum automatischen Bereinigen abgelaufener Löschmarkierungen
<a name="LifecycleDelMarker"></a>

Eine abgelaufene Objektlöschmarkierung ist eine, bei der alle Objektversionen gelöscht werden und nur eine einzelne Löschmarkierung erhalten bleibt. Wenn die Lebenszyklus-Konfiguration so eingerichtet ist, dass aktuelle Versionen gelöscht werden, oder die `ExpiredObjectDeleteMarker`-Aktion explizit festgelegt ist, entfernt Amazon S3 die Löschmarkierung des abgelaufenen Objekts. Ein Beispiel finden Sie unter [Entfernen von Löschmarkierungen für abgelaufene Objekte in einem Bucket mit aktivierter Versionsverwaltung](lifecycle-configuration-examples.md#lifecycle-config-conceptual-ex7). 

## Entfernen von Löschmarkierungen, um eine ältere Version aktuell zu machen
<a name="RemDelMarker"></a>

Wenn Sie ein Objekt in einem für das Versioning geeignetes Bucket löschen, bleiben alle Versionen in dem Bucket und Amazon S3 erstellt eine Löschmarkierung für das Objekt. Um das Löschen des Objekts rückgängig zu machen, müssen Sie diese Löschmarkierung löschen. Weitere Informationen zum Versioning und zu Löschmarkierungen finden Sie unter [Beibehalten mehrerer Versionen von Objekten mit der S3-Versionsverwaltung](Versioning.md).

Um eine Löschmarkierung dauerhaft zu löschen, müssen Sie Ihre Versions-ID in einer `DeleteObject versionId`-Anforderung angeben. Die folgende Abbildung zeigt, dass ein einfaches `DeleteObject versionId` eine Löschmarkierung nicht dauerhaft entfernt.

![\[Abbildung, die das Löschen einer Löschmarke anhand ihrer Versions-ID zeigt\]](http://docs.aws.amazon.com/de_de/AmazonS3/latest/userguide/images/versioning_DELETE_deleteMarkerVersioned.png)


Das Entfernen der Löschmarkierung bewirkt, dass eine einfache `GET`-Anforderung jetzt die aktuelle Versions-ID (121212) des Objekts abruft. 

**Anmerkung**  
Wenn Sie eine `DeleteObject`-Anforderung verwenden, bei der die aktuelle Version eine Löschmarkierung ist (ohne die Versions-ID der Löschmarkierung anzugeben), löscht Amazon S3 die Löschmarkierung nicht, sondern eine andere `PUTs` Löschmarkierung.

Um eine Löschmarkierung mit einer `NULL`-Versions-ID zu löschen, müssen Sie das `NULL` als Versions-ID in der `DeleteObject`-Anforderung übergeben. Die folgende Abbildung zeigt, wie eine einfache `DeleteObject`-Anfrage ohne Versions-ID, bei der die aktuelle Version eine Löschmarkierung ist, nichts entfernt, sondern stattdessen eine zusätzliche Löschmarkierung mit einer eindeutigen Versions-ID (7498372) hinzufügt.

![\[Abbildung, die das Löschen einer Löschmarkierung mit einer NULL-Versions-ID zeigt\]](http://docs.aws.amazon.com/de_de/AmazonS3/latest/userguide/images/versioning_DELETE_deleteMarker.png)


## Verwenden der S3-Konsole
<a name="undelete-objects"></a>

Mit den folgenden Schritten können Sie gelöschte Objekte wiederherstellen, die keine Ordner aus Ihrem S3-Bucket sind, einschließlich der Objekte, die sich in diesen Ordnern befinden. 

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die Amazon S3 S3-Konsole unter [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Wählen Sie in der Liste **Buckets** den Namen des von Ihnen erstellten Buckets aus.

1. Um eine Liste der **Versionen** der Objekte in dem Bucket anzuzeigen, wählen Sie den Schalter **List versions (Versionen auflisten)**. Sie sehen die Löschmarkierungen für gelöschte Objekte. 

   

1. Um das Löschen eines Objekts rückgängig zu machen, müssen Sie die Löschmarkierung löschen. Markieren Sie das Kontrollkästchen neben der **Löschmarkierung** des Objekts, das wiederhergestellt werden soll, und wählen Sie dann **Delete (Löschen)**.

1. Bestätigen Sie den Löschvorgang auf der Seite **Delete objects (Objekte löschen)** .

   1. Geben Sie für **Permanently delete objects?** (Objekte dauerhaft löschen?) **permanently delete** ein.

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

**Anmerkung**  
Sie können die Amazon-S3-Konsole nicht verwenden, um das Löschen von Ordnern rückgängig zu machen. Sie müssen das AWS CLI oder SDK verwenden. Beispiele finden Sie unter [Wie kann ich ein Amazon-S3-Objekt wiederherstellen, das in einem versionierungsfähigen Bucket gelöscht wurde?](https://aws.amazon.com/premiumsupport/knowledge-center/s3-undelete-configuration/) im AWS -Wissenszentrum

## Verwenden der REST-API
<a name="delete-marker-rest-api"></a>

**Eine Löschmarkierung dauerhaft entfernen**

1. Setzen Sie den Parameter `versionId` auf die ID der Version der Löschmarkierung, die Sie entfernen wollen.

1. Senden Sie eine `DELETE Object versionId`-Anforderung.

**Example – Entfernen einer Löschmarkierung**  
Das folgende Beispiel entfernt die Löschmarkierung für `photo.gif` Version 4857693.  

```
1. DELETE /photo.gif?versionId=4857693 HTTP/1.1
2. Host: bucket.s3.amazonaws.com
3. Date: Wed, 28 Oct 2009 22:32:00 GMT
4. Authorization: AWS AKIAIOSFODNN7EXAMPLE:0RQf4/cRonhpaBX5sCYVf1bNRuU=
```

Wenn Sie eine Löschmarkierung löschen, nimmt Amazon S3 folgendes in die Antwort auf.

```
1. 204 NoContent 
2. x-amz-version-id: versionID 
3. x-amz-delete-marker: true
```

## Mit dem AWS SDKs
<a name="remove-delete-marker-examples-sdk"></a>

Informationen zur Verwendung von anderen AWS SDKs finden Sie im [AWS Developer Center](https://aws.amazon.com/code/).

------
#### [ Python ]

Das folgende Python-Codebeispiel zeigt, wie Sie einen Löschmarker von einem Objekt entfernen und damit die neueste nicht-aktuelle Version der aktuellsten Version zur aktuellen Version des Objekts machen.

```
def revive_object(bucket, object_key):
    """
    Revives a versioned object that was deleted by removing the object's active
    delete marker.
    A versioned object presents as deleted when its latest version is a delete marker.
    By removing the delete marker, we make the previous version the latest version
    and the object then presents as *not* deleted.

    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 revive.
    """
    # Get the latest version for the object.
    response = s3.meta.client.list_object_versions(
        Bucket=bucket.name, Prefix=object_key, MaxKeys=1
    )

    if "DeleteMarkers" in response:
        latest_version = response["DeleteMarkers"][0]
        if latest_version["IsLatest"]:
            logger.info(
                "Object %s was indeed deleted on %s. Let's revive it.",
                object_key,
                latest_version["LastModified"],
            )
            obj = bucket.Object(object_key)
            obj.Version(latest_version["VersionId"]).delete()
            logger.info(
                "Revived %s, active version is now %s  with body '%s'",
                object_key,
                obj.version_id,
                obj.get()["Body"].read(),
            )
        else:
            logger.warning(
                "Delete marker is not the latest version for %s!", object_key
            )
    elif "Versions" in response:
        logger.warning("Got an active version for %s, nothing to do.", object_key)
    else:
        logger.error("Couldn't get any version info for %s.", object_key)
```

------

# Löschen eines Objekts aus einem MFA-Delete-fähigen Bucket
<a name="UsingMFADelete"></a>

Wenn Sie MFA Delete konfigurieren, kann nur der Root-Benutzer Objektversionen dauerhaft löschen oder die Konfiguration der Versionsverwaltung in Ihrem S3-Bucket ändern. Sie müssen ein MFA-Gerät verwenden, um den Root-Benutzer zu authentifizieren, um die Löschaktion durchzuführen.

Wenn die Versioning-Konfiguration MFA Delete unterstützt, muss der Bucket-Eigentümer den `x-amz-mfa`-Anfrage-Header in Anfragen aufnehmen, um eine Objektversion dauerhaft zu löschen oder den Versioning-Status des Buckets zu ändern. Anforderung mit `x-amz-mfa` müssen HTTPS verwenden.

Der Wert des Headers ist die Verkettung der Seriennummer Ihres Authentifizierungsgeräts, eines Leerzeichens und des darauf angezeigten Authentifizierungscodes. Wenn sie dies im Anforderungs-Header nicht angeben, schlägt die Anforderung fehl.

Bei Verwendung von AWS CLI Include gelten dieselben Informationen wie für den Wert des `mfa` Parameters.

Weitere Informationen zu Authentifizierungsgeräten finden Sie unter [Multi-Factor Authentication](https://aws.amazon.com/iam/details/mfa/).

Weitere Informationen zur Aktivierung von MFA Delete finden Sie unter [Konfigurieren von MFA Delete](MultiFactorAuthenticationDelete.md).

**Anmerkung**  
Das Löschen eines Objekts aus einem versionsfähigen Bucket, der MFA Delete unterstützt, ist nicht über den verfügbar. AWS-Managementkonsole

## Mit dem AWS CLI
<a name="MFADeleteCLI"></a>

Verwenden Sie den folgenden Befehl, um ein Objekt aus einem versionsfähigen Bucket zu löschen, der MFA Delete unterstützt. Wenn Sie den folgenden Beispielbefehl verwenden möchten, ersetzen Sie `user input placeholders` durch Ihre eigenen Informationen.

```
 aws s3api delete-object --bucket amzn-s3-demo-bucket --key OBJECT-KEY --version-id "VERSION ID" --mfa "MFA_DEVICE_SERIAL_NUMBER MFA_DEVICE_CODE"						
```

## Verwenden der REST-API
<a name="MFADeleteAPI"></a>

Im folgenden Beispiel wird `my-image.jpg` (in der angegebenen Version) gelöscht, ein mit MFA Delete konfigurierter Bucket. 

Weitere Informationen finden Sie unter [https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectDELETE.html](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectDELETE.html) in der API-Referenz zu Amazon Simple Storage Service.

```
1. DELETE /my-image.jpg?versionId=3HL4kqCxf3vjVBH40Nrjfkd HTTPS/1.1
2. Host: bucketName.s3.amazonaws.com
3. x-amz-mfa: 20899872 301749
4. Date: Wed, 28 Oct 2009 22:32:00 GMT
5. Authorization: AWS AKIAIOSFODNN7EXAMPLE:0RQf4/cRonhpaBX5sCYVf1bNRuU=
```

# Konfigurieren von versionierten Objektberechtigungen
<a name="VersionedObjectPermissionsandACLs"></a>

Die Berechtigungen für Objekte in Amazon S3 werden auf Versionsebene festgelegt. Jede Version hat ihren eigenen Objekteigentümer. AWS-Konto Derjenige, der die Objektversion erstellt, ist der Besitzer. Sie können also unterschiedliche Berechtigungen für unterschiedliche Versionen desselben Objekts einrichten. Dazu geben Sie die Versions-ID des Objekts an, dessen Berechtigungen Sie in einer `PUT Object versionId acl`-Anforderung setzen wollen. Eine ausführliche Beschreibung und Anweisungen zur Verwendung ACLs finden Sie unter[Identitäts- und Zugriffsverwaltung für Amazon S3](security-iam.md).

**Example – Einrichtung von Berechtigungen für eine Objektversion**  
Mit der folgenden Anforderung wird die Berechtigung des Empfängers mit der kanonischen Benutzer-ID `FULL_CONTROL` auf den Schlüssel*b4bf1b36f9716f094c3079dcf5ac9982d4f2847de46204d47448bc557fb5ac2a*,, Versions-ID`my-image.jpg`, festgelegt. `3HL4kqtJvjVBH40Nrjfkd`  

```
 1. PUT /my-image.jpg?acl&versionId=3HL4kqtJvjVBH40Nrjfkd HTTP/1.1
 2. Host: bucket.s3.amazonaws.com
 3. Date: Wed, 28 Oct 2009 22:32:00 GMT
 4. Authorization: AWS AKIAIOSFODNN7EXAMPLE:0RQf4/cRonhpaBX5sCYVf1bNRuU=
 5. Content-Length: 124
 6.  
 7. <AccessControlPolicy>
 8.   <Owner>
 9.     <ID>75cc57f09aa0c8caeab4f8c24e99d10f8e7faeebf76c078efc7c6caea54ba06a</ID>
10.   </Owner>
11.   <AccessControlList>
12.     <Grant>
13.       <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="CanonicalUser">
14.         <ID>a9a7b886d6fd24a52fe8ca5bef65f89a64e0193f23000e241bf9b1c61be666e9</ID>
15.       </Grantee>
16.       <Permission>FULL_CONTROL</Permission>
17.     </Grant>
18.   </AccessControlList>
19.   </AccessControlPolicy>
```

Analog dazu müssen Sie, um die Berechtigungen für eine spezifische Objektversion zu erhalten, ihre Versions-ID in einer `GET Object versionId acl`-Anforderung angeben. Sie müssen diese Versions-ID angeben, weil `GET Object acl` standardmäßig die Berechtigungen für die aktuelle Version des Objekts zurückgibt. 

**Example – Abrufen der Berechtigungen für eine bestimmte Objektversion**  
Im folgenden Beispiel gibt Amazon S3 die Berechtigungen für den Schlüssel, `my-image.jpg`, Versions-ID, `DVBH40Nr8X8gUMLUo` zurück.  

```
1. GET /my-image.jpg?versionId=DVBH40Nr8X8gUMLUo&acl HTTP/1.1
2. Host: bucket.s3.amazonaws.com
3. Date: Wed, 28 Oct 2009 22:32:00 GMT
4. Authorization: AWS AKIAIOSFODNN7EXAMPLE:0RQf4/cRonhpaBX5sCYVf1bNRuU
```

Weitere Informationen finden Sie unter [https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectGETacl.html](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectGETacl.html) in der *API-Referenz zu Amazon Simple Storage Service*.

# Arbeiten mit Objekten in einem Bucket mit ausgesetztem Versioning
<a name="VersionSuspendedBehavior"></a>

In Amazon S3 können Sie das Versioning aussetzen, um zu verhindern, dass sich neue Versionen desselben Objekts in einem Bucket ansammeln. Sie könnten dies tun, weil Sie nur eine einzige Version eines Objekts in einem Bucket haben möchten. Oder Sie möchten möglicherweise keine Gebühren für mehrere Versionen anfallen. 

Wenn Sie das Versioning aussetzen, ändern sich die in Ihrem Bucket vorhandenen Objekte nicht. Was sich ändert, ist, wie Amazon S3 die Objekte in zukünftigen Anfragen verarbeitet. Die Themen in diesem Abschnitt erläutern verschiedene Objekt-Vorgänge in einem Bucket mit ausgesetztem Versioning, einschließlich Hinzufügen, Abrufen und Löschen von Objekten.

Weitere Informationen über das S3-Versioning finden Sie unter [Beibehalten mehrerer Versionen von Objekten mit der S3-Versionsverwaltung](Versioning.md). Weitere Informationen über das Abrufen von Objektversionen, finden Sie unter [Abrufen von Objektversionen aus einem versioning-fähigen Bucket](RetrievingObjectVersions.md).

**Topics**
+ [Hinzufügen von Objekten zu Buckets mit ausgesetztem Versioning](AddingObjectstoVersionSuspendedBuckets.md)
+ [Abrufen von Objekten aus Buckets mit ausgesetztem Versioning](RetrievingObjectsfromVersioningSuspendedBuckets.md)
+ [Löschen von Objekten aus Buckets mit ausgesetztem Versioning](DeletingObjectsfromVersioningSuspendedBuckets.md)

# Hinzufügen von Objekten zu Buckets mit ausgesetztem Versioning
<a name="AddingObjectstoVersionSuspendedBuckets"></a>

Sie können in Amazon S3 Objekte in Buckets mit ausgesetztem Versioning hinzufügen, um das Objekt mit der Versions-ID null zu erzeugen oder eine Objektversion mit einer übereinstimmenden Versions-ID zu überschreiben.

Nachdem Sie das Versioning für einen Bucket ausgesetzt haben, fügt Amazon S3 automatisch jedem nachfolgend (mit `PUT`, `POST` oder `CopyObject`) in diesem Bucket gespeicherten Objekt die Versions-ID `null` hinzu

Die folgende Abbildung zeigt, wie Amazon S3 jedem Objekt automatisch die Versions-ID `null` hinzufügt, wenn es einem Bucket mit ausgesetztem Versioning hinzugefügt wird.

![\[Amazon S3 fügt einer Objektgrafik die Versions-ID Null hinzu.\]](http://docs.aws.amazon.com/de_de/AmazonS3/latest/userguide/images/versioning_PUT_versionSuspended.png)


Wenn sich bereits eine Null-Version im Bucket befindet und Sie ein weiteres Objekt mit demselben Schlüssel hinzufügen, überschreibt das hinzugefügte Objekt die ursprüngliche Null-Version. 

Wenn es versionsfähige Objekte im Bucket gibt, wird die Version, die Sie mit `PUT` hinzufügen, zur aktuellen Version des Objekts. Die folgende Abbildung zeigt, wie das Hinzufügen eines Objekts in einen Bucket, der versionsfähige Objekte enthält, das bereits im Bucket enthaltene Objekt nicht überschreibt. 

In diesem Fall befand sich Version 111111 bereits im Bucket. Amazon S3 weist dem Objekt, das hinzugefügt und im Bucket gespeichert wird, die Versions-ID null zu. Version 111111 wird nicht überschrieben.

![\[Amazon S3 fügt einem Objekt die Versions-ID Null hinzu, ohne die Grafik der Version 111111 zu überschreiben.\]](http://docs.aws.amazon.com/de_de/AmazonS3/latest/userguide/images/versioning_PUT_versionSuspended3.png)


Wenn bereits eine Null-Version in einem Bucket vorhanden ist, wird die Null-Version überschrieben, wie in der folgenden Abbildung gezeigt.

![\[Amazon S3 fügt einem Objekt die Versions-ID Null hinzu und überschreibt gleichzeitig die Grafik mit dem ursprünglichen Inhalt.\]](http://docs.aws.amazon.com/de_de/AmazonS3/latest/userguide/images/versioning_PUT_versionSuspended4.png)


Obwohl der Schlüssel und die Versions-ID (`null`) der Null-Version vor und nach `PUT` gleich sind, wird der Inhalt der ursprünglich im Bucket gespeicherten Version jedoch durch die Inhalte des Objekts ersetzt, die mit `PUT` in den Bucket geschrieben wurde.

# Abrufen von Objekten aus Buckets mit ausgesetztem Versioning
<a name="RetrievingObjectsfromVersioningSuspendedBuckets"></a>

Eine `GET Object`-Anforderung gibt die aktuelle Version eines Objekts zurück, unabhängig davon, ob Sie das Versioning für einen Bucket aktiviert haben oder nicht. Die folgende Abbildung zeigt, wie ein einfaches `GET` die aktuelle Version des Objekts zurückgibt.

![\[Abbildung, die zeigt, wie eine einfache GET-Aufforderung die aktuelle Version des Objekts zurückgibt\]](http://docs.aws.amazon.com/de_de/AmazonS3/latest/userguide/images/versioning_GET_suspended.png)


# Löschen von Objekten aus Buckets mit ausgesetztem Versioning
<a name="DeletingObjectsfromVersioningSuspendedBuckets"></a>

Sie können Objekte aus Buckets mit ausgesetztem Versioning löschen, um ein Objekt mit einer Versions-ID von null zu entfernen.

Wenn das Versioning für ein Bucket ausgesetzt ist, gilt für eine `DELETE`-Anforderung:
+ Kann nur ein Objekt entfernen, dessen Versions-ID `null` ist.
+ Entfernt nichts, wenn es keine Nullversion des Objekts im Bucket gibt.
+ Fügt eine Löschmarkierung in den Bucket ein.

Wenn die Bucket-Versionsverwaltung unterbrochen ist, entfernt der Vorgang das Objekt, dessen `versionId` Null lautet. Wenn eine Versions-ID vorhanden ist, fügt Amazon S3 eine Löschmarkierung ein, die zur aktuellen Version des Objekts wird. Die folgende Abbildung zeigt, wie eine einfache `DELETE`-Aufforderung eine Nullversion entfernt und Amazon S3 stattdessen eine Löschmarkierung mit der Versions-ID `null` einfügt.

![\[Abbildung, die einen einfachen Löschvorgang zeigt, um ein Objekt mit Versions-ID NULL zu entfernen.\]](http://docs.aws.amazon.com/de_de/AmazonS3/latest/userguide/images/versioning_DELETE_versioningSuspended.png)


Um ein Objekt mit einer `versionId` dauerhaft zu löschen, müssen Sie die `versionId` des Objekts in die Anforderung aufnehmen. Da eine Löschmarkierung keine Inhalte speichert, verlieren Sie den Inhalt der Version `null`, wenn sie durch eine Löschmarkierung ersetzt wird.

Die folgende Abbildung zeigt einen Bucket, der keine Nullversion enthält. In diesem Fall wird durch die `DELETE`-Aufforderung nichts entfernt. Stattdessen fügt Amazon S3 nur eine Löschmarkierung ein.

![\[Abbildung, die das Einfügen einer Löschmarkierung zeigt.\]](http://docs.aws.amazon.com/de_de/AmazonS3/latest/userguide/images/versioning_DELETE_versioningSuspendedNoNull.png)


Selbst in einem Bucket, für das die Versionierung gesperrt wurde, kann der Bucket-Besitzer eine bestimmte Version dauerhaft löschen, indem er die Versions-ID in die `DELETE` Anfrage aufnimmt, es sei denn, die Berechtigungen für die `DELETE` Anfrage wurden ausdrücklich verweigert. Um beispielsweise das Löschen von Objekten mit einer `null` Versions-ID zu verweigern, müssen Sie die Berechtigungen `s3:DeleteObject` und `s3:DeleteObjectVersions` explizit verweigern.

Die folgende Abbildung zeigt, dass das beim Löschen einer angegebenen Objektversion diese Version des Objekts dauerhaft gelöscht wird. Nur der Bucket-Eigentümer kann eine spezifische Objektversion löschen.

![\[Abbildung, die das permanente Löschen eines Objekts mithilfe einer angegebenen Versions-ID zeigt\]](http://docs.aws.amazon.com/de_de/AmazonS3/latest/userguide/images/versioning_DELETE_versioningEnabled2.png)


# Fehlerbehebung für die Versionsverwaltung
<a name="troubleshooting-versioning"></a>

Die folgenden Themen können bei der Behebung von allgemeinen Problemen mit der Amazon-S3-Versionsverwaltung hilfreich sein.

**Topics**
+ [Ich möchte Objekte wiederherstellen, die in einem Bucket mit aktivierter Versionsverwaltung versehentlich gelöscht wurden.](#recover-objects)
+ [Ich möchte versionierte Objekte dauerhaft löschen](#delete-objects-permanent)
+ [Nach dem Aktivieren der Bucket-Versionsverwaltung stelle ich Leistungseinbußen fest](#performance-degradation)

## Ich möchte Objekte wiederherstellen, die in einem Bucket mit aktivierter Versionsverwaltung versehentlich gelöscht wurden.
<a name="recover-objects"></a>

Wenn Objektversionen aus S3-Buckets gelöscht werden, hat Amazon S3 im Allgemeinen keine Möglichkeit, diese wiederherzustellen. Wenn Sie jedoch die S3-Versionsverwaltung in Ihrem S3-Bucket aktiviert haben, kann ein Objekt mit einer `DELETE`-Anforderung, in der keine Versions-ID angegeben ist, nicht dauerhaft gelöscht werden. Stattdessen wird eine Löschmarkierung als Platzhalter hinzugefügt. Diese Löschmarkierung wird zur aktuellen Version des Objekts. 

Gehen Sie wie folgt vor, um zu überprüfen, ob Ihre gelöschten Objekte dauerhaft oder vorübergehend (mit einer Löschmarkierung an ihrer Stelle) gelöscht wurden: 

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die Amazon S3 S3-Konsole unter [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Wählen Sie im linken Navigationsbereich **Buckets** aus.

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

1. Aktivieren Sie in der Liste **Objekte** den Schalter **Versionen anzeigen** rechts neben der Suchleiste und suchen Sie dann in der Suchleiste nach dem gelöschten Objekt. Dieser Schalter ist nur verfügbar, wenn die Versionsverwaltung zuvor für den Bucket aktiviert wurde.

   Sie können auch das [S3 Inventory verwenden, um nach gelöschten Objekten zu suchen](storage-inventory.md#storage-inventory-contents).

1. Wenn Sie das Objekt nicht finden können, nachdem Sie **Versionen anzeigen** eingeschaltet oder einen Bestandsbericht erstellt haben, und auch keine [Löschmarkierung](DeleteMarker.md) für das Objekt zu finden ist, ist der Löschvorgang dauerhaft und das Objekt kann nicht wiederhergestellt werden.



Sie können den Status eines gelöschten Objekts auch überprüfen, indem Sie die `HeadObject` API-Operation von AWS Command Line Interface (AWS CLI) aus verwenden. Verwenden Sie hierfür den folgenden Befehl `head-object` und ersetzen Sie die `user input placeholders` durch Ihre eigenen Informationen: 

`aws s3api head-object --bucket amzn-s3-demo-bucket --key index.html`

Wenn Sie den Befehl `head-object` für ein versioniertes Objekt ausführen, dessen aktuelle Version eine Löschmarkierung ist, erhalten Sie den Fehler 404 Nicht gefunden. Beispiel: 

Beim Aufrufen des HeadObject Vorgangs ist ein Fehler aufgetreten (404): Not Found

Wenn Sie den Befehl `head-object` für ein versioniertes Objekt ausführen und die Versions-ID des Objekts angeben, ruft Amazon S3 die Metadaten des Objekts ab und bestätigt damit, dass das Objekt noch vorhanden ist und nicht dauerhaft gelöscht wurde.

`aws s3api head-object --bucket amzn-s3-demo-bucket --key index.html --version-id versionID`

```
{
"AcceptRanges": "bytes",
"ContentType": "text/html",
"LastModified": "Thu, 16 Apr 2015 18:19:14 GMT",
"ContentLength": 77,
"VersionId": "Zg5HyL7m.eZU9iM7AVlJkrqAiE.0UG4q",
"ETag": "\"30a6ec7e1a9ad79c203d05a589c8b400\"",
"Metadata": {}
}
```

Wenn das Objekt gefunden wird und die neueste Version eine Löschmarkierung ist, ist die vorherige Version des Objekts immer noch vorhanden. Da die Löschmarkierung die aktuelle Version des Objekts darstellt, können Sie das Objekt wiederherstellen, indem Sie die Löschmarkierung löschen. 

Nachdem Sie die Löschmarkierung dauerhaft entfernt haben, wird die zweitneueste Version des Objekts zur aktuellen Version des Objekts, sodass Ihr Objekt wieder verfügbar ist. Eine visuelle Darstellung der Wiederherstellung von Objekten finden Sie unter [Entfernen von Löschmarkierungen](ManagingDelMarkers.md#RemDelMarker).

Um eine bestimmte Version eines Objekts entfernen zu können, müssen Sie der Bucket-Eigentümer sein. Um eine Löschmarkierung dauerhaft zu löschen, müssen Sie Ihre Versions-ID in einer `DeleteObject`-Anforderung angeben. Verwenden Sie zum Löschen der Löschmarkierung den folgenden Befehl und ersetzen Sie die `user input placeholders` durch Ihre eigenen Informationen: 

****  
`aws s3api delete-object --bucket amzn-s3-demo-bucket --key index.html --version-id versionID`

Weitere Informationen über den Befehl `delete-object` finden Sie unter [https://docs.aws.amazon.com//cli/latest/reference/s3api/delete-object.html](https://docs.aws.amazon.com//cli/latest/reference/s3api/delete-object.html) in der *AWS CLI -Befehlsreferenz*. Weitere Informationen zum dauerhaften Löschen von Löschmarkierungen finden Sie unter [Verwalten von Löschmarkierungen](ManagingDelMarkers.md).

## Ich möchte versionierte Objekte dauerhaft löschen
<a name="delete-objects-permanent"></a>

In einem Bucket mit aktivierter Versionsverwaltung kann ein Objekt mit einer `DELETE`-Anforderung ohne Versions-ID nicht dauerhaft gelöscht werden. Bei einer solchen Anforderung wird vielmehr eine Löschmarkierung eingefügt.

Um versionierte Objekte dauerhaft zu löschen, können Sie eine der folgenden Methoden auswählen:
+ Erstellen Sie eine S3-Lebenszyklusregel, um nicht aktuelle Versionen dauerhaft zu löschen. Um nicht aktuelle Versionen dauerhaft zu löschen, wählen Sie **Nicht aktuelle Versionen von Objekten dauerhaft löschen** aus und geben Sie anschließend eine Zahl unter **Tage, nachdem Objekte veraltet sind** ein. Sie können die Anzahl der beizubehaltenden neueren Versionen optional angeben, indem Sie einen Wert unter **Number of newer versions to retain** (Anzahl der beizubehaltenden neueren Versionen) eingeben. Weitere Informationen zum Erstellen dieser Regel finden Sie unter [Festlegen einer S3-Lebenszyklus-Konfiguration](how-to-set-lifecycle-configuration-intro.md).
+ Löschen Sie eine angegebene Version, indem Sie die Versions-ID in die `DELETE`-Anforderung aufnehmen. Weitere Informationen hierzu finden Sie unter [Dauerhaftes Löschen von versionierten Objekten](DeletingObjectVersions.md#delete-request-use-cases).
+ Erstellen Sie eine Lebenszyklusregel, um aktuelle Versionen ablaufen zu lassen. Um aktuelle Versionen von Objekten ablaufen zu lassen, wählen Sie **Aktuelle Objektversionen ablaufen lassen** aus und fügen Sie dann eine Zahl unter **Tage nach Objekterstellung** ein. Weitere Informationen zum Erstellen dieser Lebenszyklusregel finden Sie unter [Festlegen einer S3-Lebenszyklus-Konfiguration](how-to-set-lifecycle-configuration-intro.md).
+ Um alle versionierten Objekte und Löschmarkierungen dauerhaft zu löschen, erstellen Sie zwei Lebenszyklusregeln: eine, um aktuelle Versionen ablaufen zu lassen und nicht aktuelle Versionen von Objekten dauerhaft zu löschen, und die andere, um Löschmarkierungen für abgelaufene Objekte zu löschen.

In einem Bucket mit aktivierter Versionsverwaltung können mit einer `DELETE`-Anforderung, in der keine Versions-ID angegeben ist, nur Objekte mit einer Versions-ID `NULL` entfernt werden. Wenn das Objekt hochgeladen wurde, als die Versionsverwaltung aktiviert war, wird mit einer `DELETE`-Anforderung, in der keine Versions-ID angegeben ist, eine Löschmarkierung für dieses Objekt erstellt.

**Anmerkung**  
Bei Buckets mit aktivierter S3-Objektsperre verursacht eine `DELETE`-Objektanforderung mit einer ID einer geschützten Objektversion den Fehler 403 Zugriff verweigert. Eine `DELETE`-Objektanforderung ohne Versions-ID fügt eine Löschmarkierung als neueste Version des Objekts mit der Antwort 200 OK hinzu. Objekte, die durch die Objektsperre geschützt sind, können erst dauerhaft gelöscht werden, wenn ihre Aufbewahrungszeiträume und gesetzlichen Aufbewahrungsfristen aufgehoben sind. Weitere Informationen finden Sie unter [So funktioniert die S3-Objektsperre](object-lock.md#object-lock-overview).

## Nach dem Aktivieren der Bucket-Versionsverwaltung stelle ich Leistungseinbußen fest
<a name="performance-degradation"></a>

Bei Buckets mit aktivierter Versionsverwaltung kann es zu Leistungseinbußen kommen, wenn zu viele Löschmarkierungen oder versionierte Objekte vorhanden sind und wenn bewährte Methoden nicht befolgt werden.

**Zu viele Löschmarkierungen**  
Nachdem Sie die Versionsverwaltung für einen Bucket aktiviert haben, wird mit einer `DELETE`-Anforderung ohne Versions-ID an ein Objekt eine Löschmarkierung mit einer eindeutigen Versions-ID erstellt. Lebenszyklus-Konfigurationen mit der Regel **Aktuelle Objektversionen ablaufen lassen** fügen jedem Objekt eine Löschmarkierung mit einer eindeutigen Versions-ID hinzu. Wenn zu viele Löschmarkierungen vorhanden sind, kann dies die Leistung im Bucket beeinträchtigen.

Wenn die Versionsverwaltung für einen Bucket ausgesetzt wird, markiert Amazon S3 die Versions-ID bei neu erstellten Objekten als `NULL`. Eine Ablaufaktion in einem Bucket mit ausgesetzter Versionsverwaltung bewirkt, dass Amazon S3 eine Löschmarkierung mit der Versions-ID `NULL` erstellt. In einem Bucket mit ausgesetzter Versionsverwaltung wird für jede Löschanforderung eine `NULL`-Löschmarkierung erstellt. Diese `NULL`-Löschmarkierungen werden auch als Löschmarkierungen für abgelaufenes Objekt bezeichnet, wenn alle Objektversionen gelöscht werden und nur eine einzelne Löschmarkierung übrig bleibt. Wenn sich zu viele `NULL`-Löschmarkierungen ansammeln, kommt es zu Leistungseinbußen im Bucket.

**Zu viele versionierte Objekte**  
Wenn ein Bucket mit aktivierter Versionsverwaltung Objekte mit Millionen von Versionen enthält, kann es vermehrt zu Fehlern 503 Service nicht verfügbar kommen. Wenn Sie eine deutliche Zunahme der HTTP-Antworten 503 Service Unavailable feststellen, die für `PUT`- oder `DELETE`-Objektanforderungen an einen Bucket mit aktivierter Versionsverwaltung eingehen, befinden sich möglicherweise ein oder mehrere Objekte in dem Bucket, für die Millionen von Versionen vorhanden sind. Wenn Sie Objekte mit Millionen Versionen haben, drosselt Amazon S3 Anforderungen an den Bucket automatisch. Durch die Drosselung von Anforderungen wird Ihr Bucket vor übermäßigem Anforderungsdatenverkehr geschützt, der andere Anforderungen an denselben Bucket verhindern könnte. 

Um festzustellen, zu welchen Objekten es Millionen Versionen gibt, verwenden Sie S3 Inventory. S3 Inventory generiert einen Bericht, der eine flache Dateiliste der Objekte in einem Bucket enthält. Weitere Informationen finden Sie unter [Katalogisieren und Analysieren Ihrer Daten mit S3 Inventory](storage-inventory.md).

Um zu überprüfen, ob der Bucket viele versionierte Objekte enthält, verwenden Sie die S3-Storage-Lens-Metriken, um die **Anzahl der Objekte der aktuellen Version**, die **Anzahl nicht aktueller Versionsobjekte** und die **Anzahl der Löschmarkierungsobjekte** anzuzeigen. Weitere Informationen zu Storage-Lens-Metriken finden Sie unter [Amazon S3-Storage-Lens-Metrikglossar](storage_lens_metrics_glossary.md).

Das Amazon-S3-Team fordert die Kunden auf, Anwendungen zu überprüfen, die wiederholt dasselbe Objekt überschreiben und damit potenziell Millionen Versionen für dieses Objekt erstellen, um festzustellen, ob die Anwendung wie beabsichtigt funktioniert. Beispielsweise kann eine Anwendung, die eine Woche lang jede Minute dasselbe Objekt überschreibt, über zehntausend Versionen erstellen. Wir empfehlen, für jedes Objekt weniger als einhunderttausend Versionen zu speichern. Wenn Sie einen Anwendungsfall haben, der Millionen von Versionen für ein oder mehrere Objekte erfordert, wenden Sie sich an das AWS Support Team, um Unterstützung bei der Suche nach einer besseren Lösung zu erhalten.

**Best Practices**  
Um Leistungseinbußen im Zusammenhang mit der Versionsverwaltung zu vermeiden, empfehlen wir Ihnen, den folgenden bewährten Methoden zu folgen:
+ Aktivieren Sie eine Lebenszyklusregel, um die vorherigen Versionen von Objekten ablaufen zu lassen. Sie können beispielsweise eine Lebenszyklusregel erstellen, nach der nicht aktuelle Versionen ablaufen, wenn das Objekt 30 Tage nicht mehr aktuell ist. Sie können auch mehrere nicht aktuelle Versionen beibehalten, wenn Sie nicht alle löschen möchten. Weitere Informationen finden Sie unter [Festlegen einer S3-Lebenszyklus-Konfiguration](how-to-set-lifecycle-configuration-intro.md).
+ Aktivieren Sie eine Lebenszyklusregel, um Löschmarkierungen für abgelaufene Objekte zu löschen, denen keine Datenobjekte im Bucket zugeordnet sind. Weitere Informationen finden Sie unter [Löschen abgelaufener Löschmarkierungen für Objekte](lifecycle-configuration-examples.md#lifecycle-config-conceptual-ex7).

Weitere bewährte Methoden zur Amazon-S3-Leistungsoptimierung finden Sie unter [Bewährte Methoden für Designmuster](optimizing-performance.md).