Penghapusan sementara membantu melindungi data Cloud Storage Anda jika objek atau bucket dihapus secara tidak sengaja atau dengan niat jahat. Fitur penghapusan sementara mempertahankan objek dan bucket yang dihapus atau ditimpa dengan mempertahankan objek dan bucket tersebut dalam status dihapus sementara selama jangka waktu tertentu. Selama jangka waktu ini, objek atau bucket tidak dapat dihapus secara permanen dan dapat dipulihkan.
Penghapusan sementara diaktifkan secara default untuk semua bucket yang mendukungnya, dengan durasi retensi default 7 hari. Anda dapat menetapkan durasi retensi default yang berbeda menggunakan tag.
Halaman ini menjelaskan cara kerja penghapusan sementara.
Kebijakan penghapusan sementara
Jika penghapusan sementara diaktifkan di bucket, penghapusan bucket atau objek di dalam bucket akan menyebabkan resource memasuki status dihapus sementara, bukan dihapus secara permanen. Untuk mengaktifkan penghapusan sementara pada bucket, Anda menetapkan kebijakan penghapusan sementara yang menentukan berapa lama resource yang dihapus sementara dipertahankan.
Kebijakan penghapusan sementara berfungsi dengan cara berikut:
Kebijakan penghapusan sementara mencakup durasi retensi yang menentukan berapa lama resource yang dihapus sementara dipertahankan sebelum dihapus secara permanen. Durasi retensi default adalah 7 hari dan Anda dapat menyesuaikan durasi retensi menjadi antara 7 hingga 90 hari. Untuk menonaktifkan penghapusan sementara, Anda menetapkan durasi retensi ke 0.
Kebijakan penghapusan sementara default ditetapkan secara otomatis di semua bucket yang baru dibuat, kecuali bucket yang menggunakan produk atau kemampuan yang tidak kompatibel dengan penghapusan sementara (seperti bucket zonal yang menggunakan Rapid Bucket).
Anda dapat menetapkan, mengedit, atau menonaktifkan kebijakan penghapusan sementara saat membuat atau mengupdate bucket.
Saat Anda mengedit kebijakan penghapusan sementara, perubahan yang Anda lakukan hanya berlaku untuk resource yang dihapus setelah kebijakan baru diterapkan. Resource yang dihapus sebelum kebijakan baru berlaku akan dipertahankan selama durasi retensi asli yang berlaku saat resource dihapus. Dengan kata lain, resource yang dihapus sementara yang sudah ada akan terus mematuhi periode retensi data yang aktif pada saat penghapusannya.
Misalnya, Anda menetapkan kebijakan penghapusan sementara pada bucket dengan durasi retensi tujuh hari. Anda menghapus objek
object-A.png, yang akan dihapus untuk sementara. Selanjutnya, Anda mengubah durasi retensi kebijakan menjadi 10 hari, lalu menghapus objekobject-B.png, yang juga akan dihapus sementara.object-A.pngakan dipertahankan selama tujuh hari dalam status dihapus sementara, sedangkanobject-B.pngakan dipertahankan selama 10 hari.Perubahan pada periode retensi kebijakan penghapusan sementara memerlukan waktu hingga 30 detik untuk diterapkan.
Untuk mempelajari cara menetapkan dan mengelola kebijakan penghapusan sementara pada bucket, lihat Menetapkan dan mengelola kebijakan penghapusan sementara.
Properti resource yang dihapus sementara
Jika bucket atau objek dihapus berdasarkan kebijakan penghapusan sementara yang aktif, resource akan bertransisi ke status dihapus sementara. Anda dapat memulihkan resource yang dihapus sementara selama durasi retensinya.
Resource yang dihapus sementara memiliki karakteristik berikut:
Objek dan bucket yang dihapus sementara tidak dapat dibaca, diubah, atau ditimpa. Satu-satunya operasi yang didukung adalah mencantumkan atau memulihkannya.
Resource yang dihapus sementara disembunyikan dari operasi daftar secara default. Untuk melihat resource yang dihapus sementara, Anda harus secara eksplisit menentukan tanda atau filter untuk melihat resource tersebut.
Anda tidak dapat mengubah bucket yang dihapus sementara atau mencantumkan isinya hingga bucket itu sendiri dipulihkan. Metode yang Anda gunakan untuk memulihkan bucket yang dihapus sementara akan memengaruhi apakah objek dalam bucket tersebut juga dipulihkan:
Anda dapat memulihkan bucket yang dihapus sementara dan objeknya secara bersamaan menggunakan konsol Google Cloud .
Memulihkan bucket menggunakan Google Cloud CLI atau JSON API hanya akan memulihkan bucket kosong. Kemudian, Anda harus memulihkan objek dalam operasi terpisah untuk memulihkan isinya.
Jika nama bucket digunakan oleh bucket aktif baru, Anda tidak dapat memulihkan bucket yang dihapus sementara hingga bucket aktif yang bertentangan dihapus.
Jika project Anda dihapus, bucket apa pun yang mengaktifkan penghapusan sementara akan dipertahankan selama durasi retensi data penghapusan sementara atau periode pemulihan projectGoogle Cloud , mana saja yang lebih singkat. Setelah jangka waktu ini, bucket akan dihapus secara permanen.
Jika Anda memulihkan project yang dihapus, bucket yang aktif saat project dihapus akan dipulihkan sebagai bucket aktif. Bucket yang dihapus sementara saat project dihapus akan tetap dihapus sementara hingga durasi retensinya berakhir.
Bucket yang tidak mengaktifkan penghapusan sementara dapat dihapus segera saat project dihapus, dan mungkin tidak dapat dipulihkan.
Beberapa kemampuan Cloud Storage kompatibel dengan kebijakan penghapusan sementara, tetapi tidak memengaruhi objek yang dihapus sementara. Contoh kemampuan tersebut adalah Autoclass, Object Lifecycle Management, Bucket Lock, dan Object Retention Lock.
Untuk mengetahui petunjuk tentang cara memulihkan objek atau bucket yang dihapus sementara, lihat Memulihkan objek yang dihapus sementara atau Memulihkan bucket yang dihapus sementara.
Pemulihan objek
Saat Anda memulihkan objek yang dihapus sementara, Cloud Storage akan membuat salinan baru dan aktif dari objek tersebut dalam bucket yang sama. Versi asli yang dihapus sementara tetap berada di latar belakang hingga periode retensi data berakhir secara resmi. Daftar berikut menjelaskan perilaku pemulihan inti:
Saat Anda memulihkan objek, Cloud Storage akan membuat versi baru objek tersebut. Untuk mengetahui informasi selengkapnya tentang versi objek, lihat Imutabilitas objek.
Jika objek aktif dengan nama yang sama seperti objek yang dihapus sementara sudah ada saat Anda memulihkan objek yang dihapus sementara, objek yang dipulihkan akan menimpa versi aktif yang ada. Objek yang ditimpa yang sebelumnya aktif kemudian otomatis dihapus sementara.
Dalam skenario khusus ini, bucket Anda akan berisi dua salinan objek yang dipulihkan (satu salinan aktif baru dan salinan lama yang dihapus sementara) bersama dengan versi objek yang baru dihapus sementara dan ditimpa.
Terlepas dari tingkat penyimpanan asli objek atau setelan Autoclass yang aktif, semua objek yang dipulihkan ditulis ke kelas penyimpanan Standard.
Metode pemulihan objek
Anda dapat memulihkan objek yang dihapus sementara menggunakan salah satu dari dua jalur eksekusi, berdasarkan persyaratan skala Anda:
Memulihkan objek satu per satu: Digunakan untuk memulihkan objek individual secara serentak.
Memulihkan objek secara massal: Digunakan untuk pemulihan data skala besar. Anda dapat memulai operasi yang berjalan lama asinkron untuk memulihkan grup objek besar yang cocok dengan kriteria filter tertentu.
Memulihkan objek dengan jalur duplikat
Meskipun jarang terjadi, objek yang dihapus sementara duplikat dengan nama dan nilai generasi yang identik dapat terjadi di bucket dengan namespace hierarkis yang diaktifkan. Konflik ini dapat terjadi jika Anda mengganti nama folder yang berisi objek dengan nama duplikat di bucket dengan namespace hierarkis yang diaktifkan. Dalam skenario ini, jarang terjadi, tetapi mungkin saja dua objek yang dihapus sementara secara kebetulan memiliki nomor generasi yang sama.
Untuk memahami skenario ini, lihat contoh berikut:
Anda memiliki objek bernama
cat.pngdi dalam folder bernamamy-folder-A.cat.pngdiberi nomor generasi999. Anda menghapuscat.png, yang akan dihapus sementara.Anda menghapus folder induk
my-folder-Ayang kosong.Di tempat lain dalam penyimpanan Anda, Anda memiliki folder bernama
my-folder-B. Di dalam folder ini terdapat objek lain bernamacat.png. Murni secara kebetulan, objekcat.pngini juga diberi nomor generasi999. Anda mengganti namamy-folder-Bmenjadimy-folder-A. Karena namespace hierarkis, jalur objek berubah menjadimy-folder-A/cat.png.Anda menghapus
cat.pngkedua ini, yang akan dihapus sementara.
Sekarang, ada dua objek yang dihapus sementara bernama cat.png dengan nomor
generasi 999.
Untuk memulihkan, mencantumkan, atau mengakses versi objek yang dihapus sementara tertentu di antara duplikat, Anda harus memberikan parameter restoreToken yang unik dalam permintaan Anda.
Parameter restoreToken harus disertakan saat memulihkan, mencantumkan, atau
mengakses versi objek yang dihapus sementara di bucket dengan namespace hierarkis yang diaktifkan. Tidak menyertakan parameter restoreToken saat objek duplikat
ada akan menyebabkan error yang meminta Anda memasukkan token. Mengirimkan token, nama, atau nomor generasi yang salah akan menampilkan error yang menunjukkan bahwa objek tidak dapat ditemukan. Untuk mengetahui informasi selengkapnya tentang parameter restoreToken,
lihat metode objects.restore.
Harga
Objek yang dihapus sementara akan terus dikenai biaya penyimpanan hingga periode retensinya berakhir dan objek tersebut dihapus secara permanen. Objek yang dihapus sementara sebelum durasi penyimpanan minimumnya berakhir akan dikenai biaya penghapusan awal, kecuali jika objek tersebut disimpan di Standard Storage.
Untuk mengetahui informasi mendetail tentang biaya yang terkait dengan penghapusan sementara, lihat Harga Cloud Storage.
Mengurangi biaya untuk objek sementara saat menggunakan penghapusan sementara
Jika bucket terutama berisi objek sementara yang berumur pendek, mengaktifkan penghapusan sementara di bucket dapat menyebabkan biaya penyimpanan meningkat secara signifikan. Untuk membantu mengurangi biaya objek sementara, sebaiknya lakukan hal berikut:
Jika Anda perlu mengganti nama objek, gunakan metode JSON API
objects.moveuntuk mengganti nama objek. Jangan mengganti nama objek dengan menyalinnya.Simpan objek sementara di bucket yang tidak mengaktifkan penghapusan sementara.
Objek sementara biasanya memiliki siklus proses yang singkat sebelum dihapus. Objek sementara dapat berupa:
Data yang digunakan sebagai sumber untuk membuat objek gabungan
Data yang dibuat ulang untuk tujuan jangka pendek, seperti hasil kueri atau file penyiapan
Data dari workload yang memiliki frekuensi penulisan dan penghapusan yang tinggi (misalnya, jutaan penghapusan setiap hari)
Data yang dapat dihapus secara permanen secara tidak sengaja tanpa berdampak pada kelangsungan produksi
Interaksi dengan produk dan fitur lain
Jika penghapusan sementara diaktifkan, produk dan fitur lain akan berperilaku dengan cara berikut:
Rapid Bucket: Bucket zonal yang menggunakan Rapid Bucket tidak mendukung penghapusan sementara.
-
Aturan Object Lifecycle Management tidak memengaruhi objek yang dihapus sementara. Object Lifecycle Management tidak dapat digunakan untuk mengubah kelas penyimpanan objek yang dihapus sementara atau menghapusnya secara permanen.
Objek yang dihapus oleh Object Lifecycle Management akan dihapus sementara. Jika Anda juga mengaktifkan Pembuatan Versi Objek di bucket, objek aktif yang dihapus akan menjadi objek lama dan objek lama yang dihapus akan dihapus sementara.
Pembuatan Versi Objek: Saat Anda menghapus objek lama, objek tersebut akan dihapus sementara.
Upload multibagian XML API: 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 sementara.
Saat Anda memulihkan objek yang dihapus sementara, objek yang dihasilkan akan ditetapkan ke kelas penyimpanan Standard.
Fitur Kunci Bucket dan Kunci Retensi Objek: Fitur ini akan mencegah Anda menghapus objek hingga objek tersebut memenuhi kebijakan retensinya. Penghapusan sementara kemudian memberikan lapisan perlindungan tambahan dengan mempertahankan objek yang dihapus selama durasi retensi data penghapusan sementara yang terpisah.
Notifikasi Pub/Sub: Memulihkan versi objek yang dihapus 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 sendiri, default Cloud Storage adalah membuat bucket dengan durasi retensi penghapusan sementara selama tujuh hari. Anda dapat mengubah setelan default ini dengan menggunakan tag. Tag 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 pada 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 penghapusan sementara berdasarkan biaya dan penggunaan Penagihan Cloud. Untuk mempelajari lebih lanjut, lihat pemberi rekomendasi penghapusan sementara.
Langkah berikutnya
- Pelajari cara menetapkan kebijakan penghapusan sementara.
- Pelajari cara memulihkan objek yang dihapus sementara.
- Pelajari batasan kebijakan
storage.softDeletePolicySeconds.