Halaman ini menjelaskan fitur penghapusan sementara, yang mempertahankan objek yang dihapus atau ditimpa dan bucket yang berisinya selama jangka waktu tertentu. Penghapusan sementara membantu melindungi data Anda dari penghapusan yang tidak disengaja atau berbahaya dengan mempertahankan objek yang dihapus dalam status dihapus sementara, selama objek tidak dapat dihapus secara permanen. Penghapusan sementara diaktifkan secara default di semua bucket dan memiliki durasi retensi tujuh hari, kecuali jika Anda atau organisasi Anda telah memilih kebijakan yang berbeda.
Ringkasan
Saat Anda mengaktifkan penghapusan sementara di bucket, objek yang dihapus dari bucket akan memasuki status dihapus sementara, bukan dihapus secara permanen. Objek yang dihapus secara sementara berperilaku dengan cara berikut:
Objek yang dihapus secara soft tidak dapat dibaca atau diubah.
Operasi daftar mengecualikan objek yang dihapus sementara secara default.
Satu-satunya operasi yang didukung pada objek yang dihapus secara sementara adalah untuk mencantumkan atau memulihkannya.
Fitur seperti Autoclass, Object Lifecycle Management, Bucket Lock, dan Object Retention Lock kompatibel dengan penghapusan sementara, tetapi tidak memengaruhi objek yang dihapus sementara.
Untuk mengaktifkan penghapusan sementara di bucket, Anda membuat kebijakan penghapusan sementara yang menentukan durasi retensi data yang mengontrol berapa lama objek yang dihapus sementara disimpan sebelum dihapus secara permanen.
Untuk mempelajari cara membuat dan mengelola kebijakan penghapusan sementara guna mengaktifkan atau menonaktifkan penghapusan sementara di bucket, lihat Menggunakan penghapusan sementara.
Kebijakan penghapusan sementara
Kebijakan penghapusan sementara dapat dibuat, dihapus, atau diubah selama pembuatan atau pembaruan bucket. Setelah kebijakan penghapusan sementara dibuat, Anda dapat menggunakannya untuk mengaktifkan atau menonaktifkan penghapusan sementara untuk bucket.
Kebijakan penghapusan sementara berperilaku dengan cara berikut:
Memperbarui kebijakan penghapusan sementara bucket hanya berlaku untuk objek yang Anda hapus setelah kebijakan penghapusan sementara berlaku. Objek yang Anda hapus sebelum update akan disimpan selama durasi yang berlaku saat dihapus.
Misalnya, Anda mengaktifkan kebijakan penghapusan sementara di bucket dengan durasi retensi default tujuh hari, lalu Anda menghapus objek
cat.png
. Dalam skenario ini,cat.png
dipertahankan sebagai objek yang dihapus sementara selama tujuh hari ke depan, lalu dihapus secara permanen. Hal ini terjadi meskipun Anda nanti mengubah atau menghapus kebijakan penghapusan sementara untuk bucket.Jika Anda menambahkan durasi retensi penghapusan data sementara baru ke bucket yang ada, durasi tersebut tidak akan berlaku untuk objek apa pun yang dihapus sebelum kebijakan penghapusan data sementara diterapkan.
Jika menghapus project, Anda tidak dapat menggunakan penghapusan sementara untuk memulihkan bucket atau objek di dalamnya, meskipun penghapusan sementara diaktifkan. Untuk memastikan Anda tidak kehilangan data jika terjadi penghapusan yang berbahaya atau tidak sengaja, sebaiknya batasi akses ke penghapusan tingkat project dengan menempatkan lien pada project Anda atau mencadangkan data penting bagi bisnis ke bucket di project lain.
Jika bucket dihapus, objek di dalamnya tidak akan dihapus secara permanen, tetapi tidak dapat dicantumkan atau dipulihkan kecuali jika bucket yang dihapus sementara dipulihkan terlebih dahulu. Saat Anda memulihkan bucket yang dihapus sementara, bucket akan dipulihkan tanpa objek aktif di dalamnya. Anda harus melakukan operasi pemulihan objek atau menambahkan objek baru di dalamnya. Untuk mempelajari lebih lanjut cara menggunakan bucket yang dihapus secara sementara, lihat Memulihkan bucket yang dihapus secara sementara.
Durasi retensi penghapusan sementara
Saat Anda membuat bucket, kebijakan penghapusan sementara default akan ditambahkan ke bucket dengan durasi retensi 7 hari, yang merupakan durasi retensi minimum untuk kebijakan penghapusan sementara. Untuk perlindungan yang lebih baik, Anda dapat memilih durasi retensi data apa pun hingga maksimum 90 hari. Atau, Anda dapat menetapkan durasi retensi ke 0 hari, yang menonaktifkan penghapusan sementara untuk bucket.
Dalam durasi retensi kebijakan penghapusan sementara, Anda dapat memulihkan objek yang dihapus, tetapi setelah durasi berakhir, Cloud Storage akan menghapus objek tersebut secara permanen. Durasi retensi penghapusan sementara diukur dalam detik. Namun, beberapa alat, seperti Konsol Google Cloud dan Google Cloud CLI, memungkinkan Anda menetapkan dan melihat durasi retensi menggunakan satuan waktu lain demi kemudahan.
Satu hari dianggap 86.400 detik.
Satu bulan dianggap 31 hari, yaitu 2.678.400 detik.
Untuk gcloud CLI, saat menentukan periode retensi, Anda harus menentukan bilangan bulat dan unit, dengan unit berupa s
, d
, atau m
untuk menandakan detik, hari, atau bulan. Misalnya, 7d43200s
menetapkan
periode retensi data 7 hari dan 43.200 detik (tujuh setengah hari).
Anda dapat menetapkan durasi retensi maksimum 7.776.000 detik (90 hari) atau durasi retensi minimum 604.800 detik (7 hari). Saat menggunakan REST API, Anda juga dapat menetapkan durasi retensi ke nilai 0, yang menonaktifkan kebijakan penghapusan sementara.
Perilaku pemulihan
Saat Anda memulihkan objek yang dihapus sementara, Cloud Storage akan membuat salinan objek yang dihapus sementara di bucket yang sama dengan tempat objek tersebut dihapus. Metadata objek yang dipulihkan sama dengan metadata objek yang dihapus. Pada akhir durasi retensi data penghapusan sementara, Cloud Storage akan menghapus objek yang dihapus sementara secara permanen.
Anda dapat memulihkan objek yang dihapus sementara sebelum durasi retensi penghapusan sementara berakhir.
Perilaku pemulihan untuk penghapusan sementara dapat dijelaskan sebagai berikut:
Jika Anda menghapus project, Cloud Storage akan menghapus semua bucket dan objek dalam project tersebut secara permanen. Dalam skenario tersebut, Anda tidak dapat memulihkan objek dan bucket menggunakan fitur penghapusan sementara. Oleh karena itu, Anda harus mengambil langkah-langkah untuk membatasi akses ke penghapusan tingkat project, seperti menempatkan lien pada project atau mencadangkan data penting bagi bisnis ke bucket di project lain.
Objek yang dipulihkan selalu menggantikan versi aktifnya: jika versi aktif objek Anda sudah ada, versi yang dihapus sementara akan menggantikan versi aktif, dan versi aktif yang sudah ada akan dihapus sementara. Dalam skenario tersebut, bucket Anda berisi objek berikut:
Objek aktif yang diganti dan berada dalam status dihapus sementara.
Dua salinan objek yang sebelumnya dihapus sementara, satu salinan aktif, dan satu salinan yang masih dihapus sementara.
Salinan objek dikenai biaya hingga dihapus secara permanen: salinan objek dikenai biaya penyimpanan hingga objek yang dihapus sementara dihapus secara permanen setelah durasi retensi berakhir. Untuk mengetahui informasi selengkapnya tentang biaya yang terkait dengan objek yang dihapus secara sementara, lihat Harga Cloud Storage.
Objek yang dihapus secara soft dapat dipulihkan menggunakan beberapa metode: Anda dapat memulihkan objek yang dihapus secara soft secara sinkron dengan menentukan daftar objek, atau Anda dapat membuat operasi yang berjalan lama untuk memulihkan objek yang dihapus secara massal di antara dua stempel waktu.
Mencoba memulihkan bucket yang dihapus sementara sebelum 6 Agustus 2024 akan menghasilkan error yang menyatakan
The specified bucket does not exist
dan Anda harus menghubungi Cloud Customer Care untuk melakukan pemulihan.
Memulihkan dan mengambil metadata objek dalam bucket dengan namespace hierarkis yang diaktifkan
Di bucket Cloud Storage dengan namespace hierarkis yang diaktifkan, objek yang dihapus secara soft dapat terjadi. Objek duplikat memiliki nilai
name
dan generation
yang sama, sehingga menyebabkan potensi ambiguitas selama pemulihan.
Cara objek duplikat muncul
Untuk memahami bagaimana objek duplikat dengan nilai name
dan generation
yang sama dapat terjadi, pertimbangkan dua objek folderA/my-object.txt
dan folderB/my-object.txt
, lalu lakukan urutan tindakan berikut pada objek:
- Menghapus objek
folderA/my-object.txt
secara soft-delete. - Hapus folder induk objek
folderA/my-object.txt
,folderA
. - Ganti nama
folderB
menjadifolderA
, lalu objekfolderB/my-object.txt
menjadifolderA/my-object.txt
. - Menghapus objek
folderA/my-object.txt
secara soft-delete yang memilikiname
yang sama dengan objek yang dihapus sebelumnya.
Setiap versi objek di Cloud Storage memiliki nilai generation
yang unik. Namun, jika objek folderA/my-object.txt
dan folderB/my-object.txt
dibuat secara independen dan tidak terkait satu sama lain, objek tersebut mungkin
secara kebetulan memiliki nilai generation
yang sama.
Akibatnya, Anda dapat memiliki dua objek yang dihapus secara soft yang memiliki nilai name
(folderA/my-object.txt
) dan generation
yang sama.
Untuk memastikan Anda memulihkan atau mengambil metadata objek my-object.txt
yang dimaksud (karena sekarang ada dua objek dengan nilai name
dan generation
yang sama), Anda harus memberikan ID unik.
Identifikasi objek unik dengan restoreToken
restoreToken
secara unik
mengidentifikasi objek yang benar yang ingin Anda pulihkan atau ambil. Untuk mendapatkan nilai restoreToken
, Anda dapat mencantumkan objek yang dihapus sementara dalam bucket.
Untuk mengetahui detailnya, lihat mencantumkan objek yang dihapus secara sementara.
Pertimbangan dan error
Pertimbangkan informasi berikut dan potensi error yang mungkin Anda temui saat menangani objek duplikat yang dihapus secara soft di bucket dengan namespace hierarkis yang diaktifkan:
Kemungkinan terjadinya dua objek yang tidak terkait dan memiliki nilai
generation
yang sama sangat kecil, dan urutan tindakan tertentu yang diperlukan agar objek tersebut juga memilikiname
yang sama membuat situasi ini semakin jarang terjadi.Karena jarang terjadi, parameter
restoreToken
mungkin tidak diperlukan untuk sebagian besar kasus penggunaan. Namun, Anda dapat menggunakanrestoreToken
untuk pengambilan objek yang akurat saat objek duplikat yang dihapus secara sementara dengan nilainame
dangeneration
yang sama terjadi.Jika Anda mencoba memulihkan atau mengambil metadata objek yang dihapus secara sementara tanpa menentukan
restoreToken
dan ada beberapa objek yang cocok dengan nilainame
dangeneration
yang ditentukan, Anda akan mendapatkan error yang menunjukkan bahwa Anda harus menentukanrestoretoken
.Jika Anda mencoba memulihkan atau mengambil metadata objek yang dihapus secara soft dengan memberikan nilai
restoreToken
,name
, ataugeneration
yang salah, Anda akan mendapatkan error yang menunjukkan bahwa kunci yang ditentukan tidak ada.
Pertimbangan dengan fitur lainnya
Jika diaktifkan, penghapusan sementara memiliki interaksi berikut dengan fitur Cloud Storage lainnya:
-
Aturan Object Lifecycle Management tidak memengaruhi objek yang dihapus secara sementara. Anda tidak dapat menggunakan Pengelolaan Siklus Proses Objek untuk mengubah class penyimpanan objek yang dihapus sementara atau menghapusnya secara permanen.
Objek yang dihapus oleh Object Lifecycle Management akan dihapus secara permanen. Jika Anda juga mengaktifkan Pembuatan Versi Objek di bucket, objek aktif yang dihapus akan menjadi versi lama dan objek lama yang dihapus akan dihapus sementara.
-
Jika Anda menghapus objek yang tidak berlaku, objek tersebut akan dihapus sementara.
-
Bagian upload multibagian XML API tidak dilindungi oleh penghapusan sementara.
-
Biaya pengelolaan autoclass tidak dikenakan untuk objek yang dihapus sementara.
Autoclass tidak mengubah kelas penyimpanan objek yang dihapus permanen.
Saat Anda memulihkan objek yang dihapus sementara, objek yang dihasilkan akan ditetapkan ke kelas penyimpanan Standard.
Fitur Bucket Lock dan Object Retention Lock
Fitur ini akan mencegah Anda menghapus objek hingga memenuhi kebijakan retensinya. Penghapusan sementara kemudian memberikan lapisan perlindungan tambahan dengan mempertahankan objek yang dihapus selama durasi retensi penghapusan sementara yang terpisah.
-
Memulihkan versi objek yang dihapus secara sementara akan memicu peristiwa OBJECT_FINALIZE.
Folder terkelola: Penghapusan sementara tidak dapat memulihkan kebijakan IAM di folder terkelola. Jika Anda menghapus sementara objek dan menghapus folder terkelola yang memberikan kebijakan IAM untuk objek tersebut, Anda mungkin harus membuat ulang kebijakan IAM tersebut sebelum memiliki izin yang diperlukan untuk memulihkan objek yang dihapus sementara.
Tag: Jika Anda membuat bucket tanpa menyertakan setelan penghapusan sementara, setelan default Cloud Storage adalah membuat bucket dengan durasi retensi penghapusan sementara tujuh hari. Anda dapat mengubah setelan default ini dengan menggunakan tag. Tag ini dapat mengubah durasi retensi default untuk bucket baru menjadi nilai apa pun antara 7 dan 90 hari, atau dapat mengubah default untuk menonaktifkan penghapusan sementara di bucket baru. Anda juga dapat menggunakan tag untuk menonaktifkan penghapusan sementara secara default.
Recommender: Anda dapat mengaktifkan Recommender API untuk menerima saran dan insight tentang cara mengaktifkan atau menonaktifkan soft delete berdasarkan biaya dan penggunaan Penagihan Cloud. Untuk mempelajari lebih lanjut, lihat pembuat rekomendasi penghapusan sementara.
Langkah selanjutnya
- Pelajari cara menggunakan penghapusan sementara.
- Pelajari cara menggunakan objek yang dihapus secara sementara.
- Pelajari batasan kebijakan
storage.softDeletePolicySeconds
.