

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Cara melakukan penghapusan bersyarat
<a name="conditional-deletes"></a>

Anda dapat menggunakan penghapusan bersyarat untuk mengevaluasi apakah objek Anda ada atau tidak berubah sebelum menghapusnya. Anda dapat melakukan penghapusan bersyarat menggunakan operasi `DeleteObject` atau `DeleteObjects` API di bucket tujuan umum dan direktori S3. Untuk memulai, saat membuat permintaan penghapusan bersyarat, Anda dapat menggunakan `HTTP If-Match` header dengan nilai prasyarat `*` untuk memeriksa apakah objek ada atau `If-Match` header dengan yang Anda berikan `ETag` untuk memeriksa apakah objek telah dimodifikasi.

Anda dapat menerapkan penghapusan bersyarat pada tingkat bucket tujuan umum menggunakan kebijakan bucket S3 atau Identity and Access Management (IAM). Untuk informasi selengkapnya, lihat [Menerapkan penghapusan bersyarat pada bucket Amazon S3](conditional-delete-enforce.md). 

**catatan**  
Evaluasi penghapusan bersyarat hanya berlaku untuk versi objek saat ini. 

**Topics**
+ [Cara memeriksa apakah objek Anda telah dimodifikasi sebelum menghapusnya](#conditional-deletes-etags)
+ [Cara memeriksa apakah objek Anda ada sebelum menghapusnya](#conditional-delete)
+ [Menerapkan penghapusan bersyarat pada bucket Amazon S3](conditional-delete-enforce.md)

## Cara memeriksa apakah objek Anda telah dimodifikasi sebelum menghapusnya
<a name="conditional-deletes-etags"></a>

 Dengan penghapusan bersyarat, Anda dapat melindungi aplikasi Anda dari penghapusan objek yang tidak disengaja. Anda dapat menggunakan `HTTP If-Match` header dengan `ETag` nilai untuk memeriksa apakah suatu objek telah dimodifikasi. Jika `ETag` nilai objek dalam bucket S3 tidak sesuai dengan `ETag` yang Anda berikan selama operasi penghapusan, operasi akan gagal. Untuk menghapus beberapa objek secara kondisional menggunakan `DeleteObjects` operasi, Anda harus memberikan `ETag` nilai dalam `ETag` elemen objek di badan permintaan XHTML. Untuk informasi selengkapnya, lihat [Menggunakan Konten- MD5 dan ETag untuk memverifikasi objek yang diunggah](checking-object-integrity-upload.md#checking-object-integrity-etag-and-md5). 

**catatan**  
Untuk melakukan penghapusan bersyarat dengan `If-Match` header dengan `ETag` nilai, Anda harus memiliki `s3:DeleteObject` dan `s3:GetObject` izin. 

`If-Match`Header dengan `ETag` nilai mengevaluasi terhadap objek yang ada dalam ember. Jika ada objek yang ada dengan nama kunci dan pencocokan yang sama`ETag`, `DeleteObject` permintaan berhasil, dan mengembalikan `204 No content` respons. Jika `ETag` tidak cocok, operasi penghapusan gagal dengan `412 Precondition Failed` respons. Untuk menghapus beberapa objek secara kondisional menggunakan `DeleteObjects` operasi, Anda dapat memberikan `ETag` nilai dalam `ETag` elemen objek di badan permintaan XHTML. Jika permintaan berhasil, `DeleteObjects` operasi merespons dengan `200 OK` dan memberikan status setiap objek di badan respons. Jika prasyarat berhasil, respons untuk objek itu akan ditangkap dalam `<Deleted>` elemen badan respons. Jika prasyarat gagal maka respons untuk objek itu akan ditangkap dalam `<Error>` elemen badan respons.

 Anda juga dapat menerima respons `409 Conflict` kesalahan dalam kasus permintaan bersamaan jika permintaan `DELETE` atau `PUT` permintaan ke objek berhasil sebelum operasi penghapusan bersyarat pada objek tersebut selesai. Anda akan menerima `404 Not Found` respons jika permintaan penghapusan bersamaan ke objek berhasil sebelum operasi tulis bersyarat pada objek tersebut selesai, karena kunci objek tidak ada lagi. 

Anda dapat menggunakan `If-Match` header dengan `ETag` nilai sebagai berikut 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)

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

`delete-object`Contoh perintah berikut mencoba untuk melakukan penghapusan bersyarat dengan ETag nilai `6805f2cfc46c0f04559748bb039d69al` yang disediakan.

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

Untuk informasi selengkapnya, lihat [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) dalam *AWS CLI Referensi Perintah*. 

`delete-objects`Contoh perintah berikut mencoba untuk melakukan penghapusan bersyarat dengan ETag nilai `6805f2cfc46c0f04559748bb039d69al` yang disediakan.

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

Untuk informasi selengkapnya, lihat [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) dalam *AWS CLI Referensi Perintah*. 

Untuk informasi tentang AWS CLI, lihat [Apa itu AWS Command Line Interface?](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) dalam *AWS Command Line Interface User Guide*. 

## Cara memeriksa apakah objek Anda ada sebelum menghapusnya
<a name="conditional-delete"></a>

 Anda dapat menggunakan `If-Match` header dengan `*` nilai untuk memeriksa apakah objek ada sebelum mencoba untuk menghapusnya. `*`Nilai menandakan bahwa operasi hanya harus dilanjutkan jika objek ada, terlepas dari apakah itu telah dimodifikasi atau tidak. 

Delete marker adalah objek khusus dalam bucket tujuan umum S3 berversi yang menunjukkan bahwa suatu objek telah dihapus. Mereka adalah placeholder yang membuat objek tampak dihapus sambil mempertahankan versi sebelumnya. Oleh karena itu, ketika Anda menggunakan `If-Match:*` dengan `DeleteObject` API, operasi hanya akan berhasil dengan `204 No Content` jika objek ada. Jika versi terbaru dari objek adalah penanda hapus, objek tidak ada dan `DeleteObject` API akan gagal dan mengembalikan `412 Precondition Failed` respons. Untuk informasi selengkapnya tentang penanda hapus, lihat [Bekerja dengan penanda hapus](DeleteMarker.md).

Untuk menghapus beberapa objek secara kondisional menggunakan `DeleteObjects` operasi, Anda dapat memberikan `ETag` elemen objek di badan permintaan XHTML. `*` Jika prasyarat berhasil, `DeleteObjects` operasi merespons dengan a `200 OK` dan memberikan status setiap objek dalam badan respons. Jika prasyarat berhasil, respons untuk objek itu akan ditangkap dalam `<Deleted>` elemen badan respons. Jika prasyarat gagal maka respons untuk objek itu akan ditangkap dalam `<Error>` elemen badan respons. Jika objek tidak ada saat mengevaluasi salah satu prasyarat, S3 menolak permintaan dan mengembalikan respons kesalahan. `Not Found` 

**catatan**  
 Untuk melakukan penghapusan bersyarat dengan`If-Match:*`, Anda harus memiliki `s3:DeleteObject` izin. 

Anda dapat menggunakan `If-Match` header dengan `*` nilai sebagai berikut 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)

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

`delete-object`Contoh perintah berikut mencoba untuk melakukan penghapusan bersyarat untuk objek dengan nama kunci `my_images.tar.bz2` yang memiliki nilai `*` yang mewakili apapun ETag. 

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

Untuk informasi selengkapnya, lihat [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) dalam *AWS CLI Referensi Perintah*.

`delete-objects`Contoh perintah berikut mencoba untuk melakukan penghapusan bersyarat untuk objek dengan nama kunci `my_images.tar.bz2` yang memiliki nilai `*` yang mewakili apapun ETag. 

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

Untuk informasi selengkapnya, lihat [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) dalam *AWS CLI Referensi Perintah*.

Untuk informasi tentang AWS CLI, lihat [Apa itu AWS Command Line Interface?](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) dalam *AWS Command Line Interface User Guide*. 