

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.

# So führen Sie bedingte Löschungen durch
<a name="conditional-deletes"></a>

Sie können bedingte Löschungen verwenden, um zu prüfen, ob Ihr Objekt existiert oder unverändert ist, bevor es gelöscht wird. Sie können bedingte Löschungen mithilfe der `DeleteObject`- oder `DeleteObjects`-API-Operationen in S3-Allzweck-Buckets und Verzeichnis-Buckets durchführen. Wenn Sie eine bedingte Löschanforderung stellen, können Sie zunächst den `HTTP If-Match` Header mit dem Wert der Vorbedingung verwenden, `*` um zu überprüfen, ob das Objekt existiert, oder den `If-Match` Header mit dem von Ihnen bereitgestellten `ETag`, um zu überprüfen, ob das Objekt geändert wurde.

Sie können bedingte Löschungen auf einer Allzweck-Bucket-Ebene mithilfe von S3-Bucket- oder IAM-Richtlinien (Identity and Access Management) erzwingen. Weitere Informationen finden Sie unter [Erzwingen von bedingten Löschungen auf Amazon S3 Buckets](conditional-delete-enforce.md). 

**Anmerkung**  
Bedingte Löschauswertungen gelten nur für die aktuelle Version des Objekts. 

**Topics**
+ [So prüfen Sie, ob Ihr Objekt vor dem Löschen geändert wurde](#conditional-deletes-etags)
+ [So prüfen Sie, ob Ihr Objekt existiert, bevor Sie es löschen](#conditional-delete)
+ [Erzwingen von bedingten Löschungen auf Amazon S3 Buckets](conditional-delete-enforce.md)

## So prüfen Sie, ob Ihr Objekt vor dem Löschen geändert wurde
<a name="conditional-deletes-etags"></a>

 Mit bedingten Löschungen können Sie Ihre Anwendung vor versehentlichem Löschen von Objekten schützen. Sie können den Header `HTTP If-Match` mit dem Wert `ETag` verwenden, um zu prüfen, ob ein Objekt geändert wurde. Wenn der `ETag` Wert eines Objekts in einem S3-Bucket nicht mit dem Wert `ETag` übereinstimmt, den Sie während des Löschvorgangs angegeben haben, schlägt der Vorgang fehl. Um mehrere Objekte mithilfe des `DeleteObjects`-Vorgangs bedingt zu löschen, müssen Sie den `ETag`-Wert im `ETag`-Element des Objekts im Hauptteil der XML-Anfrage angeben. Weitere Informationen finden Sie unter [Verwenden Sie Content- MD5 und the, um hochgeladene ETag Objekte zu verifizieren](checking-object-integrity-upload.md#checking-object-integrity-etag-and-md5). 

**Anmerkung**  
Um bedingte Löschungen mit dem Header `If-Match` mit dem Wert `ETag` durchzuführen, benötigen Sie die Berechtigungen `s3:DeleteObject` und `s3:GetObject`. 

Der `If-Match`-Header mit dem `ETag`-Wert wird anhand vorhandener Objekte in einem Bucket ausgewertet. Wenn es ein vorhandenes Objekt mit demselben Schlüsselnamen und dem passenden `ETag` gibt, ist die `DeleteObject` Anfrage erfolgreich und gibt eine `204 No content` Antwort zurück. Wenn das `ETag` nicht übereinstimmt, schlägt der Löschvorgang mit einer `412 Precondition Failed`-Antwort fehl. Um mehrere Objekte mithilfe der `DeleteObjects` Operation bedingt zu löschen, können Sie den `ETag` Wert im `ETag` Element des Objekts im Hauptteil der XML-Anfrage angeben. Wenn die Anforderung erfolgreich ist, antwortet der `DeleteObjects` Vorgang mit einem `200 OK` und gibt den Status jedes Objekts im Antworttext an. Wenn die Vorbedingung erfolgreich ist, wird die Antwort für dieses Objekt im `<Deleted>` Element des Antworttextes erfasst. Wenn die Vorbedingung fehlschlägt, wird die Antwort für dieses Objekt im `<Error>` Element des Antworttextes erfasst.

 Bei gleichzeitigen Anfragen kann es auch zu einer `409 Conflict`-Fehlermeldung kommen, wenn eine `DELETE`- oder `PUT`-Objektanfrage erfolgreich ist, bevor eine bedingte Löschoperation für dieses Objekt abgeschlossen ist. Sie erhalten eine `404 Not Found`-Antwort, wenn eine gleichzeitige Löschanforderung für ein Objekt erfolgreich ist, bevor ein bedingter Schreibvorgang für dieses Objekt abgeschlossen ist, da der Objektschlüssel nicht mehr existiert. 

Sie können den `If-Match` Header mit dem `ETag` Wert für Folgendes APIs verwenden:
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjects.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjects.html)

### Mit dem AWS CLI
<a name="conditional-deletes-deleteobject-CLI-etags"></a>

Der folgende `delete-object` Beispielbefehl versucht, ein bedingtes Löschen mit dem angegebenen ETag Wert durchzuführen`6805f2cfc46c0f04559748bb039d69al`.

```
aws s3api delete-object --bucket amzn-s3-demo-bucket --key dir-1/my_images.tar.bz2 --if-match "6805f2cfc46c0f04559748bb039d69al"       
```

Weitere Informationen finden Sie unter [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/delete-object.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/delete-object.html) in der Referenz zum *AWS CLI -Befehl*. 

Mit dem folgenden `delete-objects` Beispielbefehl wird versucht, ein bedingtes Löschen mit dem angegebenen ETag Wert durchzuführen`6805f2cfc46c0f04559748bb039d69al`.

```
aws s3api delete-objects --bucket amzn-s3-demo-bucket --delete '{"Objects":[{"Key":"my_images.tar.bz2", "ETag": "6805f2cfc46c0f04559748bb039d69al"}]}' 
```

Weitere Informationen finden Sie unter [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/delete-objects.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/delete-objects.html) in der Referenz zum *AWS CLI -Befehl*. 

Weitere Informationen zu finden Sie unter [Was ist der AWS Command Line Interface? AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) im *AWS Command Line Interface Benutzerhandbuch*. 

## So prüfen Sie, ob Ihr Objekt existiert, bevor Sie es löschen
<a name="conditional-delete"></a>

 Sie können den `If-Match`-Header mit dem `*`-Wert verwenden, um zu überprüfen, ob das Objekt existiert, bevor Sie versuchen, es zu löschen. Der `*`-Wert bedeutet, dass der Vorgang nur fortgesetzt werden soll, wenn das Objekt existiert, unabhängig davon, ob es geändert wurde oder nicht. 

Löschmarkierungen sind spezielle Objekte in versionierten S3-Allzweck-Buckets, die anzeigen, dass ein Objekt gelöscht wurde. Sie sind Platzhalter, die das Objekt als gelöscht erscheinen lassen, während die vorherigen Versionen erhalten bleiben. Wenn Sie also `If-Match:*` mit einer `DeleteObject`-API verwenden, ist die Operation nur dann mit einem „`204 No Content`“ erfolgreich, wenn das Objekt vorhanden ist. Wenn es sich bei der neuesten Version des Objekts um eine Löschmarkierung handelt, ist das Objekt nicht vorhanden und die `DeleteObject` API schlägt fehl und gibt eine `412 Precondition Failed` Antwort zurück. Weitere Informationen zu Löschmarkierungen finden Sie unter [Arbeiten mit Löschmarkierungen](DeleteMarker.md).

Um mehrere Objekte mithilfe der `DeleteObjects`-Operation bedingt zu löschen, können Sie `*` im `ETag`-Element des Objekts im Hauptteil der XML-Anfrage angeben. Wenn die Vorbedingung erfolgreich ist, antwortet der `DeleteObjects`-Vorgang mit einem `200 OK` und gibt den Status jedes Objekts im Antworttext an. Wenn die Vorbedingung erfolgreich ist, wird die Antwort für dieses Objekt im `<Deleted>` Element des Antworttextes erfasst. Wenn die Vorbedingung fehlschlägt, wird die Antwort für dieses Objekt im `<Error>` Element des Antworttextes erfasst. Wenn das Objekt bei der Auswertung einer der Vorbedingungen nicht existiert, lehnt S3 die Anfrage ab und gibt eine `Not Found`-Fehlerantwort zurück. 

**Anmerkung**  
 Um bedingte Löschungen mit `If-Match:*` durchführen zu können, benötigen Sie die entsprechenden `s3:DeleteObject`-Berechtigungen. 

Sie können den `If-Match` Header mit dem `*` Wert für Folgendes verwenden APIs:
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjects.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjects.html)

### Mit dem AWS CLI
<a name="conditional-deleteobject-CLI-etags"></a>

Mit dem folgenden `delete-object` Beispielbefehl wird versucht, ein bedingtes Löschen für ein Objekt durchzuführen`my_images.tar.bz2`, `*` dessen Schlüsselname einen beliebigen Wert hat ETag. 

```
aws s3api delete-object --bucket amzn-s3-demo-bucket --key dir-1/my_images.tar.bz2 --if-match "*"
```

Weitere Informationen finden Sie unter [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/delete-object.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/delete-object.html) in der Referenz zum *AWS CLI -Befehl*.

Mit dem folgenden `delete-objects` Beispielbefehl wird versucht, ein bedingtes Löschen für ein Objekt durchzuführen`my_images.tar.bz2`, `*` dessen Schlüsselname einen beliebigen Wert hat ETag. 

```
aws s3api delete-objects --bucket amzn-s3-demo-bucket --delete '{"Objects":[{"Key":"my_images.tar.bz2", "ETag": "*"}]}' 
```

Weitere Informationen finden Sie unter [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/delete-objects.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/delete-objects.html) in der Referenz zum *AWS CLI -Befehl*.

Weitere Informationen zu finden Sie unter [Was ist der AWS Command Line Interface? AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) im *AWS Command Line Interface Benutzerhandbuch*. 