Penghapusan sementara membantu melindungi data Cloud Storage Anda jika objek atau bucket tidak sengaja atau dengan niat jahat dihapus. Fitur penghapusan sementara mempertahankan objek dan bucket yang dihapus atau ditimpa dengan menyimpannya dalam status dihapus sementara selama jangka waktu yang ditentukan. Selama 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 selama 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 dalam bucket akan menyebabkan resource memasuki status dihapus sementara, bukan dihapus secara permanen. Untuk mengaktifkan penghapusan sementara di bucket, Anda menetapkan kebijakan penghapusan sementara yang menentukan berapa lama resource yang dihapus sementara akan dipertahankan.
Kebijakan penghapusan sementara berfungsi dengan cara berikut:
Kebijakan penghapusan sementara mencakup durasi retensi yang menentukan berapa lama resource yang dihapus sementara akan dipertahankan sebelum dihapus secara permanen. Durasi retensi default adalah 7 hari dan Anda dapat menyesuaikan durasi retensi 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 memperbarui bucket.
Saat Anda mengedit kebijakan penghapusan sementara, perubahan yang Anda buat hanya berlaku untuk resource yang dihapus setelah kebijakan baru berlaku. 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 ada akan terus mematuhi periode retensi data yang aktif pada saat penghapusannya.
Misalnya, Anda menetapkan kebijakan penghapusan sementara di bucket yang memiliki durasi retensi tujuh hari. Anda menghapus objek
object-A.png, yang menjadi dihapus sementara. Selanjutnya, Anda mengubah durasi retensi kebijakan menjadi 10 hari, lalu menghapus objekobject-B.png, yang juga menjadi 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 di bucket, lihat Menetapkan dan mengelola kebijakan penghapusan sementara.
Properti resource yang dihapus sementara
Saat bucket atau objek dihapus berdasarkan kebijakan penghapusan sementara yang aktif, resource akan beralih 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 mencantumkannya atau memulihkannya.
Resource yang dihapus sementara disembunyikan dari operasi daftar secara default. Untuk melihat resource yang dihapus sementara, Anda harus secara eksplisit menentukan flag atau filter untuk melihat resource.
Anda tidak dapat mengubah bucket yang dihapus sementara atau mencantumkan kontennya hingga bucket itu sendiri dipulihkan. Metode yang Anda gunakan untuk memulihkan bucket yang dihapus sementara akan memengaruhi apakah objek dalam bucket juga dipulihkan:
Anda dapat memulihkan bucket yang dihapus sementara dan objeknya secara bersamaan dengan menggunakan Google Cloud konsol.
Memulihkan bucket menggunakan Google Cloud CLI atau JSON API hanya akan memulihkan bucket kosong. Anda kemudian harus memulihkan objek dalam operasi terpisah untuk memulihkan kontennya.
Jika nama bucket digunakan oleh bucket aktif baru, Anda tidak dapat memulihkan bucket yang dihapus sementara hingga bucket aktif yang bertentangan dihapus.
Jika Google Cloud project Anda dihapus, Anda tidak dapat menggunakan penghapusan sementara untuk memulihkan bucket atau objek di dalamnya, meskipun penghapusan sementara diaktifkan.
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 aktif baru dari objek tersebut dalam bucket yang sama. Versi asli yang dihapus sementara tetap berada di latar belakang hingga periode retensinya resmi berakhir. Daftar berikut menjelaskan perilaku pemulihan inti:
Saat Anda memulihkan objek, Cloud Storage akan membuat versi baru dari 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 akan dihapus sementara secara otomatis.
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 yang ditimpa.
Terlepas dari tingkat penyimpanan asli objek atau setelan Autoclass aktif, semua objek yang dipulihkan akan ditulis ke kelas penyimpanan Standar.
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 sinkron.
Memulihkan objek secara massal: Digunakan untuk pemulihan data skala besar. Anda dapat memulai operasi jangka panjang asinkron untuk memulihkan grup besar objek yang cocok dengan kriteria filter tertentu.
Memulihkan objek dengan jalur duplikat
Meskipun jarang terjadi, objek duplikat yang dihapus sementara dengan nama dan nilai pembuatan 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, meskipun jarang terjadi, ada kemungkinan dua objek yang dihapus sementara secara kebetulan memiliki nomor pembuatan yang sama.
Untuk memahami skenario ini, lihat contoh berikut:
Anda memiliki objek bernama
cat.pngdi dalam folder bernamamy-folder-A.cat.pngdiberi nomor generation999. Anda menghapuscat.png, yang menjadi dihapus sementara.Anda menghapus folder induk kosong
my-folder-A.Di tempat lain dalam penyimpanan Anda, ada folder bernama
my-folder-B. Di dalam folder ini terdapat objek lain bernamacat.png. Secara kebetulan, objekcat.pngini juga diberi nomor generation999. Anda mengganti namamy-folder-Bmenjadimy-folder-A. Karena namespace hierarkis, jalur objek berubah menjadimy-folder-A/cat.png.Anda menghapus
cat.pngkedua ini, yang menjadi dihapus sementara.
Sekarang, ada dua objek yang dihapus sementara bernama cat.png dengan nomor pembuatan 999.
Untuk memulihkan, mencantumkan, atau mengakses versi objek yang dihapus sementara tertentu di antara duplikat, Anda harus memberikan parameter restoreToken unik dalam permintaan Anda.
Menyertakan parameter restoreToken diperlukan saat memulihkan, mencantumkan, atau mengakses versi objek yang dihapus sementara di bucket dengan namespace hierarkis yang diaktifkan. Jika Anda tidak menyertakan parameter restoreToken saat ada objek duplikat, akan terjadi error yang meminta Anda untuk memberikan token. Mengirimkan token, nama, atau nomor generation 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 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 mengakibatkan peningkatan biaya penyimpanan yang 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 secara otomatis. 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 mungkin berupa:
Data yang digunakan sebagai sumber untuk membuat objek gabungan
Data yang dibuat ulang untuk tujuan jangka pendek, seperti hasil kueri atau file staging
Data dari workload yang memiliki frekuensi tulis dan hapus yang tinggi (misalnya, jutaan penghapusan setiap hari)
Data yang dapat dihapus secara permanen secara tidak sengaja tanpa memengaruhi kontinuitas produksi
Interaksi dengan produk dan fitur lainnya
Jika diaktifkan, penghapusan sementara akan berinteraksi dengan produk dan fitur lainnya 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. Anda tidak dapat menggunakan Object Lifecycle Management 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 versi 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 Storage.
Fitur Bucket Lock dan Object Retention Lock: 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 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 objek sementara 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, setelan 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 setelan default untuk menonaktifkan penghapusan sementara di bucket baru. Anda juga dapat menggunakan tag untuk menonaktifkan penghapusan sementara secara default.
Langkah berikutnya
- Pelajari cara menggunakan penghapusan sementara.
- Pelajari cara menggunakan objek yang dihapus sementara.
- Pelajari batasan kebijakan
storage.softDeletePolicySeconds.