Objek gabungan

Buat

Halaman ini menjelaskan objek gabungan, yang Anda buat dari objek yang ada tanpa mentransfer data objek tambahan. Objek gabungan berguna untuk membuat penambahan ke objek yang ada, serta untuk membuat ulang objek yang telah Anda upload sebagai beberapa komponen secara paralel.

Operasi tulis

Operasi tulis menyambungkan data dalam urutan objek sumber tertentu untuk membuat objek baru yang disebut objek gabungan. Semua objek sumber harus:

Saat Anda menjalankan komposisi:

  • Objek sumber tidak terpengaruh.
  • Anda dapat menggunakan antara 1 dan 32 objek sumber.
  • Objek sumber sendiri dapat berupa objek gabungan.

Objek gabungan yang dihasilkan dari komposisi:

  • Memiliki kelas penyimpanan yang sama dengan objek sumber.
  • Tidak berubah jika objek sumber kemudian diganti atau dihapus.

Saat menggunakan gcloud storage untuk menjalankan komposisi objek, objek yang hasilnya memiliki Content-Type yang ditetapkan agar cocok dengan Content-Type dari objek sumber pertama.

Metadata objek gabungan

Ada beberapa perbedaan antara metadata objek gabungan dan metadata objek lainnya:

  • Objek gabungan tidak memiliki kolom metadata hash MD5.

  • Nilai ETag objek gabungan tidak didasarkan pada hash MD5, dan kode klien tidak boleh membuat asumsi tentang ETag objek gabungan, kecuali bahwa nilai tersebut berubah setiap kali objek yang mendasarinya berubah sesuai dengan spesifikasi IETF untuk HTTP/1.1.

  • Setiap objek gabungan memiliki kolom metadata jumlah komponen yang menghitung jumlah objek non-gabungan yang terdapat dalam objek gabungan.

  • Jika Anda menulis ulang objek gabungan ke kelas penyimpanan lain, hasilnya adalah objek gabungan dengan jumlah komponen 1.

Objek Gabungan Pemeriksaan Integritas

Cloud Storage menggunakan CRC32C untuk memeriksa integritas setiap objek sumber pada waktu upload, dan untuk memungkinkan pemanggil melakukan pemeriksaan integritas pada objek gabungan yang dihasilkan saat didownload. CRC32C adalah kode pendeteksi error yang dapat dihitung secara efisien dari nilai CRC32C komponennya. Aplikasi Anda harus menggunakan CRC32C sebagai berikut:

  • Saat mengupload objek sumber, Anda harus menghitung CRC32C untuk setiap objek yang menggunakan library CRC32C, seperti salah satu yang tercantum dalam halaman Hash dan ETag, dan menyertakan nilai tersebut dalam permintaan. Berdasarkan nilai yang Anda berikan, Cloud Storage memvalidasi setiap upload.
  • Operasi tulis otomatis memeriksa apakah objek sumber tersusun dengan benar, dan mengabaikan nilai CRC32C apa pun yang Anda berikan sebagai bagian dari permintaan tulis. CRC32C dari objek gabungan yang dihasilkan akan ditampilkan dalam respons.
  • Jika aplikasi Anda dapat mengubah objek sumber antara waktu mengupload dan menulis objek tersebut, Anda harus menentukan nama khusus generasi untuk objek sumber guna menghindari kondisi race. Atau, Anda dapat membuat nilai CRC32C dari nilai CRC32C objek sumber yang dimaksud dan membandingkannya dengan nilai CRC32C yang ditampilkan oleh operasi tulis.
  • Pada waktu download, Anda harus menghitung CRC32C objek yang didownload dan membandingkannya dengan nilai yang disertakan dalam respons.

Penambahan dan Pengeditan Terbatas

Anda dapat menggunakan operasi tulis untuk melakukan penambahan dan pengeditan objek terbatas.

Anda melakukan penambahan dengan mengupload data ke objek baru sementara, dengan menulis objek yang ingin Anda tambahkan dengan objek sementara ini, secara opsional menamakan output operasi tulisyang sama seperti objek aslinya, dan menghapus objek sementara.

Misalnya, pada gcloud CLI, rangkaian perintah untuk menambahkan string new data ke objek Cloud Storage yang ada adalah sebagai berikut:

$ echo 'new data' | gcloud storage cp - gs://bucket/temporary_object
$ gcloud storage objects compose gs://bucket/object_to_append gs://bucket/temporary_object \
    gs://bucket/object_to_append
$ gcloud storage rm gs://bucket/temporary_object

Anda juga dapat menggunakan komposisi untuk mendukung ragam dasar pengeditan objek. Misalnya, Anda dapat menulis objek X dari urutan {Y1, Y2, Y3}, mengganti isi Y2, dan menulis ulang X dari komponen yang sama. Perhatikan bahwa hal ini mengharuskan Y1, Y2, dan Y3 tidak dihapus, sehingga Anda akan ditagih untuk komponen tersebut serta untuk komposit.

Langkah selanjutnya