Pembuatan Versi Objek

Penyiapan Penggunaan

Untuk mendukung pengambilan objek yang dihapus atau diganti, Cloud Storage menawarkan fitur Pembuatan Versi Objek. Halaman ini menjelaskan fitur dan opsi yang tersedia saat menggunakannya.

Pengantar

Anda dapat mengaktifkan Pembuatan Versi Objek untuk bucket. Setelah diaktifkan:

  • Cloud Storage mempertahankan versi objek lama setiap kali Anda mengganti atau menghapus versi objek aktif, selama Anda tidak menentukan nomor generasi dari versi aktif.

    • Versi lama mempertahankan nama objek, tetapi diidentifikasi secara unik berdasarkan nomor pembuatannya.

    • Versi lama hanya muncul dalam permintaan yang secara eksplisit memanggilnya untuk disertakan.

  • Anda menghapus versi objek secara permanen dengan menyertakan nomor generasi dalam permintaan penghapusan atau menggunakan Object Lifecycle Management.

  • Versi objek lama tidak bergantung pada versi aktif apa pun.

Jika Anda menonaktifkan Pembuatan Versi Objek:

  • Bucket tidak lagi mengumpulkan versi objek lama yang baru.

  • Versi objek yang sudah ada di bucket tidak akan terpengaruh.

Pertimbangan

  • Pembuatan Versi Objek tidak dapat diaktifkan pada bucket yang saat ini memiliki kebijakan retensi.
  • Tidak ada batas default untuk jumlah versi objek yang dapat Anda miliki. Setiap versi lama objek akan dikenai biaya dengan tarif yang sama seperti saat masih aktif.

  • Biaya penghapusan awal hanya berlaku saat versi objek dihapus dari bucket, bukan saat versi tersebut menjadi lama. Durasi penyimpanan untuk versi yang dihapus dari bucket didasarkan pada waktu ketika versi ditambahkan ke bucket, bukan waktu ketika menjadi versi lama.

  • Jika Anda mengaktifkan pembuatan versi, pertimbangkan untuk menggunakan Object Lifecycle Management, yang dapat menghapus versi lama objek setelah jangka waktu tertentu, atau karena versi yang lebih baru berubah menjadi lama. Untuk satu kemungkinan penyiapan, lihat contoh konfigurasi siklus proses untuk menghapus objek.

Metadata objek lama

Versi objek lama memiliki metadatanya sendiri, yang mungkin berbeda dengan metadata versi aktif. Yang terpenting, versi lama mempertahankan ACL-nya dan tidak harus memiliki izin yang sama dengan versi aktif.

Setiap versi, baik aktif maupun lama, memiliki satu set metadata; hanya nomor metagenerasi terbaru yang mengacu pada metadata. Angka metagenerasi yang lebih lama tidak dapat digunakan untuk mengakses metadata yang telah diubah.

Anda dapat mengupdate metadata untuk versi lama suatu objek dengan menentukan generation-nya dalam permintaan Anda. Untuk memastikan semantik read-modify-write yang aman, Anda dapat menggunakan prasyarat metageneration-match. Penggunaan prasyarat ini akan menyebabkan update gagal jika metadata yang ingin Anda update berubah antara waktu Anda membaca metadata dan mengirim update.

Contoh Pembuatan Versi Objek

Contoh ini menunjukkan apa yang terjadi pada file cat.jpg di dalam bucket dengan Pembuatan Versi Objek yang diaktifkan saat Anda mengganti, memperbarui, dan menghapus file.

Anda mengupload gambar baru

Saat Anda pertama kali mengupload cat.jpg ke Cloud Storage, aplikasi akan menerima nomor generation dan nomor metageneration. Dalam contoh ini, nomor generasinya adalah 1360887697105000. Karena objek ini baru, nomor metageneration adalah 1.

cat.jpg menerima angka generation dan metageneration meskipun Pembuatan Versi Objek tidak diaktifkan. Anda bisa memperoleh angka-angka ini dengan melihat metadata objek.

Anda mengaktifkan Pembuatan Versi Objek

Pada tahap ini, Anda memutuskan untuk mengaktifkan Pembuatan Versi Objek untuk bucket Anda. Tindakan ini tidak memengaruhi jumlah generation atau metageneration dari cat.jpg.

Anda mengubah metadata gambar

Anda memperbarui metadata untuk cat.jpg dengan menambahkan metadata kustom: color:black. Memperbarui metadata akan menyebabkan nilai metageneration dari cat.jpg meningkat, dalam hal ini dari 1 menjadi 2. Namun, objeknya sendiri tetap tidak berubah, sehingga Cloud Storage terus menyimpan hanya satu versi cat.jpg, dan versi tersebut terus memiliki nomor generation 1360887697105000.

Anda mengupload gambar versi baru

Anda mengupload cat.jpg versi baru ke bucket Cloud Storage. Jika Anda melakukannya, Pembuatan Versi Objek akan memindahkan objek cat.jpg yang ada ke status tidak aktif. Versi lama mempertahankan kelas penyimpanan dan metadata yang sama dengan yang sebelumnya dimiliki. Versi lama hanya muncul jika Anda membuat listingan berversi: versi tidak muncul dalam perintah listingan normal. Versi lama sekarang dirujuk sebagai: cat.jpg#1360887697105000.

Sementara itu, cat.jpg yang baru diupload akan menjadi versi aktif objek tersebut. cat.jpg baru ini mendapatkan angka generation-nya sendiri, dalam contoh ini 1360887759327000, serta mendapatkan metadatanya sendiri dan nomor metageneration 1, yang berarti metadata tersebut tidak berisi metadata color:black kecuali jika Anda menentukannya. Saat Anda mengakses atau mengubah cat.jpg,, ini adalah versi yang digunakan. Atau, Anda dapat merujuk ke versi cat.jpg menggunakan nomor generation-nya. Misalnya, saat menggunakan Google Cloud CLI, Anda akan merujuknya sebagai cat.jpg#1360887759327000.

Anda menghapus versi aktif gambar

Anda sekarang menghapus cat.jpg. Jika Anda melakukannya, versi yang memiliki nomor generasi 1360887759327000 akan menjadi versi lama. Bucket Anda sekarang berisi dua versi lama dari cat.jpg dan tidak ada versi aktif. Anda masih dapat merujuk ke versi lama dengan menggunakan nomor generation-nya, tetapi jika Anda mencoba mengakses cat.jpg tanpa nomor generation, upaya tersebut akan gagal.

Demikian pula, listingan objek normal bucket tidak akan menampilkan cat.jpg sebagai salah satu objek dalam bucket. Untuk informasi tentang listingan versi objek lama, lihat Listingan versi objek lama.

Anda menonaktifkan Pembuatan Versi Objek

Anda menonaktifkan Pembuatan Versi Objek, yang menghentikan objek agar tidak menjadi versi lama. Versi objek lama yang ada tetap ada di Cloud Storage. Meskipun Pembuatan Versi Objek dinonaktifkan, cat.jpg#1360887697105000 dan cat.jpg#1360887759327000 tetap disimpan di bucket Anda sampai dihapus, baik secara manual maupun menggunakan Object Lifecycle Management.

Anda memulihkan salah satu versi lama

Meskipun Pembuatan Versi Objek dinonaktifkan, Anda dapat membuat salinan salah satu versi lama yang ada, yang secara efektif akan memulihkan versi. Setelah melakukannya, bucket Anda memiliki tiga versi cat.jpg: dua versi lama dan versi aktif yang berasal dari pemulihan.

Referensi Pembuatan Versi Objek

Tabel referensi ini menunjukkan apa yang terjadi saat Anda melakukan tindakan tertentu dengan Pembuatan Versi Objek.

Status Pembuatan Versi Objek Tindakan Hasil
Nonaktif
Ganti dog.png dengan versi baru. Versi baru menggantikan versi aktif dan menerima nomor generasi baru. Versi aktif yang lama akan dihapus secara permanen.
Salin versi lama dog.png ke versi aktif.1 Salinan versi lama akan menggantikan versi aktif dan menerima nomor generasi baru. Versi aktif yang lama akan dihapus secara permanen.
Hapus dog.png. dog.png dihapus secara permanen.
Hapus versi lama dog.png dengan menentukan nomor generasinya.1 Versi lama akan dihapus secara permanen.
Aktif
Ganti dog.png dengan versi baru. Versi baru menggantikan versi aktif dan menerima nomor generasi baru. Versi aktif yang lama akan menjadi versi lama dan menggunakan nomor generasi yang sama.
Salin versi lama dog.png ke versi aktif. Salinan versi lama akan menggantikan versi aktif dan menerima nomor generasi baru. Versi aktif yang lama akan menjadi versi lama dan menggunakan nomor generasi yang sama.
Menghapus versi aktif dog.png tanpa menentukan nomor generasinya. Versi aktif akan menjadi versi lama dan mempertahankan nomor generasi yang sama.
Hapus versi aktif dog.png dengan menentukan nomor generasinya. Versi aktif dihapus secara permanen.
Hapus versi lama dog.png dengan menentukan nomor generasinya. Versi lama akan dihapus secara permanen.

1 Versi lama mungkin ada jika bucket telah mengaktifkan Pembuatan Versi Objek.

Perilaku pemulihan file

Anda dapat memulihkan versi objek lama secara efektif ke versi aktif saat ini. Lihat Memulihkan versi objek lama untuk panduan langkah demi langkah.

Jika Anda melakukannya dengan mengaktifkan Pembuatan Versi Objek, jika sudah ada versi aktif dari objek tersebut di bucket Anda, Cloud Storage akan menggantikan versi aktif yang sudah ada, tetapi juga mempertahankannya sebagai versi lama yang baru. Dalam kasus demikian, bucket Anda selanjutnya berisi objek yang diganti (sekarang menjadi versi lama) dan dua salinan objek yang sebelumnya merupakan versi lama (satu salinan aktif dan satu salinan yang masih lama), yang semuanya dikenai biaya penyimpanan. Untuk mencegah biaya yang tidak diperlukan, hapus versi lama yang Anda gunakan untuk membuat salinan aktif saat ini, atau konfigurasikan Object Lifecycle Management untuk menghapus objek lama jika memenuhi kondisi yang Anda tentukan.

Langkah selanjutnya