Mengelola penanda hapus - Amazon Simple Storage Service

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

Mengelola penanda hapus

Mengonfigurasi siklus hidup untuk membersihkan penanda hapus kedaluwarsa secara otomatis

Penanda hapus objek yang kedaluwarsa adalah penanda yang semua versi objeknya dihapus dan hanya satu penanda hapus yang tersisa. Jika konfigurasi siklus hidup diatur untuk menghapus versi saat ini, atau tindakan ExpiredObjectDeleteMarker diatur secara eksplisit, Amazon S3 menghapus penanda hapus objek yang kedaluwarsa. Sebagai contoh, lihat Contoh 7: Menghapus penanda hapus objek kedaluwarsa.

Menghapus penanda hapus untuk membuat versi yang lebih lama menjadi versi saat ini

Saat Anda menghapus sebuah objek dalam bucket dengan dukungan Penentuan Versi, semua versi tetap berada dalam bucket, dan Amazon S3 membuat penanda hapus untuk objek tersebut. Untuk membatalkan penghapusan objek, Anda harus menghapus penanda hapus ini. Untuk informasi selengkapnya tentang Penentuan Versi dan penanda hapus, lihat Menggunakan Penentuan Versi dalam bucket S3.

Untuk menghapus penanda hapus secara permanen, Anda harus menyertakan ID versinya dalam permintaan DeleteObject versionId. Gambar berikut menunjukkan cara permintaan DeleteObject versionId menghapus penanda hapus secara permanen.

Ilustrasi yang menunjukkan penghapusan penanda hapus menggunakan ID versinya.

Efek dari menghapus penanda hapus adalah bahwa permintaan GET sederhana sekarang akan mengambil ID versi objek saat ini (121212).

catatan

Jika Anda menggunakan permintaan DeleteObject yang versinya saat ini adalah penanda hapus (tanpa menentukan ID versi penanda hapus), Amazon S3 tidak akan menghapus penanda hapus, melainkan PUTs penanda hapus lainnya.

Untuk menghapus penanda hapus dengan ID versi NULL, Anda harus meneruskan NULL sebagai ID versi dalam permintaan DeleteObject. Gambar berikut menunjukkan bagaimana permintaan DeleteObject sederhana dibuat tanpa ID versi yang versinya saat ini adalah penanda hapus, tidak menghapus apa pun, tetapi menambahkan penanda hapus dengan ID versi unik (7498372).

Ilustrasi yang menunjukkan penghapusan penanda hapus menggunakan ID versi NULL.

Gunakan langkah-langkah berikut untuk memulihkan objek yang dihapus yang bukan merupakan folder dari bucket S3 Anda, termasuk objek yang ada di dalam folder tersebut.

  1. Masuk ke AWS Management Console dan buka konsol Amazon S3 di https://console.aws.amazon.com/s3/.

  2. Dari daftar Bucket, pilih nama bucket yang Anda inginkan.

  3. Untuk melihat daftar versi objek di bucket, pilih tombol Buat daftar versi. Anda akan dapat melihat penanda hapus untuk objek yang dihapus.

  4. Untuk membatalkan penghapusan objek, Anda harus menghapus penanda hapus ini. Centang kotak di samping penanda hapus objek yang akan dipulihkan, lalu pilih Hapus.

  5. Konfirmasi penghapusan pada halaman Hapus objek.

    1. Untuk Hapus objek secara permanen?, masukkan permanently delete.

    2. Pilih Hapus objek.

catatan

Anda tidak dapat menggunakan konsol Amazon S3 untuk membatalkan penghapusan folder. Anda harus menggunakan AWS CLI atau SDK. Sebagai contoh, lihat Bagaimana saya bisa mengambil objek Amazon S3 yang telah dihapus di bucket dengan dukungan Penentuan Versi? di Pusat Pengetahuan AWS .

Untuk menghapus penanda hapus secara permanen
  1. Tetapkan versionId ke ID versi ke penanda hapus yang ingin Anda hapus.

  2. Kirim permintaan DELETE Object versionId.

contoh — Menghapus penanda hapus

Contoh berikut menghapus penanda hapus untuk versi photo.gif 4857693.

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

Saat Anda menghapus penanda hapus, Amazon S3 menyertakan berikut ini di dalam respons.

204 NoContent x-amz-version-id: versionID x-amz-delete-marker: true

Untuk informasi tentang menggunakan AWS SDK lain, lihat Pusat AWS Pengembang.

Python

Contoh kode Python berikut menunjukkan cara menghapus penanda hapus dari suatu objek dan dengan demikian menjadikan versi bukan saat ini yang terkini, versi objek saat ini.

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)