Metadata objek

Kelola

Halaman ini berisi pembahasan seputar kolom metadata yang umum digunakan dan disimpan bersama objek di Cloud Storage.

Pengantar

Objek yang disimpan di Cloud Storage memiliki metadata yang terkait dengannya. Metadata berfungsi untuk mengidentifikasi properti objek, serta menentukan cara objek ditangani saat diakses. Metadata merupakan key:value pair. Sebagai contoh, kelas penyimpanan objek direpresentasikan dengan entri metadata storageClass:STANDARD. storageClass adalah kunci untuk metadata tersebut, dan semua objek memiliki kunci semacam ini yang terkait dengannya. STANDARD menentukan nilai yang dimiliki objek spesifik ini, dan nilainya bervariasi dari satu objek ke objek lainnya.

Metadata memiliki mutabilitas yang bervariasi: beberapa metadata dapat diedit kapan saja, beberapa lagi hanya dapat ditetapkan ketika objek dibuat, dan beberapa metadata lainnya hanya dapat dilihat. Contohnya, Anda dapat mengedit nilai metadata Cache-Control kapan saja, tetapi hanya dapat menetapkan metadata storageClass saat objek dibuat atau ditulis ulang. Selain itu, Anda tidak dapat mengedit nilai untuk metadata generation secara langsung, meskipun nilai generation akan berubah saat objek diganti.

Metadata yang dapat diedit

Ada dua kategori metadata yang dapat diubah pengguna untuk objek:

  • Metadata kunci tetap: Metadata yang kuncinya telah ditetapkan, tetapi nilainya dapat Anda tentukan.

  • Metadata kustom: Metadata yang Anda tambahkan dengan menentukan kunci dan nilai yang terkait dengan kunci tersebut.

Saat mengedit metadata, Anda biasanya harus menghindari karakter non-ascii, karena karakter ini tidak diizinkan dalam header HTTP, yang digunakan XML API.

Metadata kunci tetap

Anda dapat mengedit metadata berikut untuk objek, meskipun Anda harus memiliki izin yang memadai:

Metadata kontrol akses

Cloud Storage menggunakan Identity and Access Management (IAM) dan Daftar Kontrol Akses (ACL) untuk mengontrol akses ke objek. Gunakan linknya untuk mempelajari metode kontrol akses ini dan metadata yang terkait.

Cache-Control

Metadata Cache-Control dapat menentukan dua aspek berbeda terkait cara penyajian data dari Cloud Storage, yaitu apakah data dapat di-cache dan apakah data dapat diubah.

Menyimpan data ke dalam cache

Metadata Cache-Control memungkinkan Anda mengontrol apakah dan berapa lama cache browser dan Internet diizinkan untuk meng-cache objek, yang kemudian dapat ditayangkan untuk memenuhi permintaan mendatang. Jaringan Cloud Storage hanya mempertimbangkan setelan Cache-Control objek saat mengakses objek yang:

Cloud Storage mengikuti nilai standar untuk Cache-Control, seperti berikut:

  • public: objek dapat di-cache di mana saja.

  • private: objek dapat di-cache dalam cache lokal pemohon.

  • no-cache: objek dapat di-cache, tetapi tidak dapat digunakan untuk memenuhi permintaan mendatang, kecuali telah divalidasi terlebih dahulu oleh Cloud Storage.

  • no-store: objek tidak dapat di-cache.

  • max-age=TIME_IN_SECONDS: durasi waktu objek dapat di-cache sebelum dianggap tidak berlaku. Anda dapat menetapkan max-age ke durasi waktu berapa pun. Objek yang tidak berlaku tidak disajikan dari cache, kecuali dalam kondisi khusus.

Jika objek yang berlaku tidak memiliki entri metadata Cache-Control, Cloud Storage akan menggunakan nilai default:

Jika Anda mengizinkan penyimpanan cache, download dapat terus menerima versi objek yang lebih lama, bahkan setelah mengupload versi yang lebih baru. Hal ini karena versi sebelumnya tetap "baru" di cache selama jangka waktu yang ditentukan oleh max-age. Selain itu, objek yang di-cache tidak akan dapat habis masa berlakunya secara global karena objek dapat di-cache di berbagai tempat di internet. Jika Anda ingin mencegah penyajian versi cache dari objek yang dapat dibaca oleh publik, tetapkan Cache-Control: no-store pada objek.

Untuk mengetahui informasi selengkapnya tentang proses cache dengan Cloud Storage dan Cloud CDN, lihat Menyimpan data ke dalam cache.

Jika memerlukan kontrol lebih atas perilaku cache, Anda dapat mengonfigurasi Cloud CDN di bucket.

Mentransformasi data

Metadata Cache-Control juga memungkinkan Anda menayangkan objek saat disimpan, tanpa menerapkan transformasi apa pun ke data, seperti menghapus encoding konten gzip untuk klien yang tidak kompatibel. Untuk menyajikan objek sebagaimana adanya, tetapkan Cache-Control:no-transform.

Content-Disposition

Metadata Content-Disposition menentukan informasi penyajian tentang data yang dikirimkan. Dengan menetapkan Content-Disposition, Anda dapat mengontrol gaya penyajian konten, seperti misalnya, menentukan apakah lampiran otomatis ditampilkan atau apakah diperlukan beberapa tindakan dari pengguna untuk membukanya. Lihat https://datatracker.ietf.org/doc/html/rfc6266 untuk spesifikasi Content-Disposition.

Content-Encoding

Metadata Content-Encoding dapat digunakan untuk menunjukkan bahwa objek dikompresi, sekaligus tetap mempertahankan Content-Type yang mendasari objek. Sebagai contoh, file teks yang dikompresi dengan gzip dapat memiliki informasi bahwa file merupakan file teks yang ditunjukkan di Content-Type, serta informasi bahwa file tersebut dikompresi dengan gzip yang ditunjukkan di Content-Encoding. Anda harus memastikan bahwa file benar-benar dikompresi menggunakan Content-Encoding yang ditentukan sebelum menguploadnya. Jika tidak, perilaku yang tidak terduga dapat terjadi saat mencoba mendownload objek tersebut. Untuk mengetahui informasi selengkapnya, lihat halaman Transcoding.

Untuk konten yang dapat dikompresi, seperti teks, penggunaan Content-Encoding: gzip dapat menghemat biaya jaringan dan penyimpanan serta meningkatkan performa penyajian konten. Namun, untuk konten yang pada dasarnya sudah terkompresi, seperti arsip dan banyak format media lainnya, menerapkan level kompresi lain dan menandainya di metadata Content-Encoding dapat mengurangi ukuran objek dan performa sehingga harus dihindari.

Content-Language

Metadata Content-Language menunjukkan bahasa yang ditujukan untuk objek. Lihat kode bahasa ISO 639-1 untuk mengetahui nilai standar metadata ini.

Cloud Storage mendukung nilai Content-Language dengan panjang hingga 100 karakter.

Content-Type

Metadata yang paling sering ditetapkan adalah Content-Type (dikenal juga sebagai jenis media), yang memungkinkan browser merender objek dengan benar. Semua objek memiliki nilai yang ditentukan dalam metadata Content-Type, tetapi nilai ini tidak harus sama dengan jenis objek yang mendasarinya. Misalnya, jika Content-Type tidak ditentukan oleh uploader dan tidak dapat ditetapkan, nilainya akan disetel ke application/octet-stream atau application/x-www-form-urlencoded, bergantung pada cara Anda mengupload objek. Untuk mengetahui daftar jenis konten yang valid, lihat halaman Jenis Media IANA.

Custom-Time

Metadata Custom-Time adalah tanggal dan waktu yang ditentukan pengguna dan direpresentasikan dalam format RFC 3339 YYYY-MM-DD'T'HH:MM:SS.SS'Z' atau YYYY-MM-DD'T'HH:MM:SS'Z' saat milidetik adalah nol. Metadata ini biasanya ditetapkan untuk menggunakan kondisi DaysSinceCustomTime di Object Lifecycle Management.

Anda tidak dapat menghapus Custom-Time setelah ditetapkan di suatu objek. Selain itu, nilai untuk Custom-Time tidak dapat dikurangi. Dengan kata lain, Anda tidak dapat menetapkan Custom-Time dengan tanggal/waktu yang lebih awal dari Custom-Time saat ini. Namun, Anda dapat menghapus atau mereset Custom-Time secara efektif dengan menulis ulang objek.

Penangguhan objek

Gunakan flag metadata untuk menetapkan penangguhan objek, yang akan mencegah penghapusan atau penggantian objek. Untuk mengetahui informasi selengkapnya, lihat halaman Penangguhan objek.

Konfigurasi retensi

Jika ada, konfigurasi retensi objek akan menentukan tanggal dan waktu sebelum objek tidak dapat dihapus atau diganti. Untuk mengetahui informasi selengkapnya, lihat Kunci Retensi Objek.

Metadata kustom

Metadata kustom adalah metadata yang kunci dan nilainya Anda tentukan sendiri. Untuk membuat metadata kustom, Anda harus menentukan kunci dan nilai. Setelah membuat pasangan key:value metadata kustom, Anda dapat menghapus kunci tersebut atau mengubah nilainya.

Metadata kustom memiliki batas ukuran dan dikenai biaya penyimpanan.

Temukan informasi tentang penetapan metadata kustom di halaman Melihat dan Mengedit Metadata.

Awalan x-goog-meta-

XML API menetapkan dan mengambil metadata objek menggunakan header permintaan, dan JSON API memungkinkan penetapan metadata kustom di permintaan akhir upload yang dapat dilanjutkan dengan menggunakan header permintaan. Untuk membedakan header metadata kustom dan header permintaan standar dengan jelas, kedua API tersebut memberi awalan pada header metadata kustom semacam itu dengan x-goog-meta-.

Metadata yang tidak dapat diedit

Beberapa metadata tidak dapat diedit secara langsung. Metadata ini ditetapkan pada saat pembuatan atau penulisan ulang objek. Sebagai bagian dari pembuatan atau penulisan ulang objek, Anda dapat menetapkan beberapa metadata semacam ini, seperti kelas penyimpanan objek atau kunci enkripsi yang dikelola pengguna. Metadata lain secara otomatis ditambahkan dan hanya dapat dilihat, misalnya, nomor generasi objek atau waktu pembuatannya.

Nomor generasi dan metagenerasi

Sebagai bagian dari metadatanya, setiap objek Cloud Storage memiliki properti generation numerik serta properti metageneration numerik yang secara unik mengidentifikasi objek:

Properti Deskripsi
generation Mengidentifikasi versi objek, dan ada di setiap objek, terlepas dari objek menggunakan Object Versioning atau tidak.
  • Nilai generation versi objek tidak akan berubah. Objek baru dengan nama yang sama dapat menggantikan objek yang ada, tetapi objek baru tersebut selalu memiliki generation yang berbeda.
  • Tidak ada jaminan bahwa nomor generasi untuk versi berikutnya akan meningkat, hanya saja setiap versi baru akan memiliki nomor generasi yang unik.
  • Tidak ada hubungan antara nomor generasi dari objek yang tidak saling berkaitan, meskipun objek tersebut berada di bucket yang sama.
metageneration Mengidentifikasi versi metadata, dan meningkat setiap kali metadata dari generation yang ditetapkan diperbarui.
  • metageneration dimulai pada 1 untuk setiap generation baru dari objek.
  • Properti metageneration tidak valid tanpa properti generation dan hanya boleh digunakan bersama; tidak ada gunanya membandingkan generasi metadata dari dua versi objek.

Properti generation dan metageneration digunakan dalam kondisi berikut:

Waktu modifikasi

Sebagai bagian dari metadatanya, setiap objek Cloud Storage memiliki properti updated yang menunjukkan waktu modifikasi terakhir metadata objek. Waktu updated pada awalnya ditetapkan ke waktu pembuatan objek, lalu berubah setiap kali ada perubahan pada metadata objek. Hal ini termasuk perubahan yang dibuat oleh pemohon, seperti memodifikasi metadata kustom, serta perubahan yang dibuat oleh Cloud Storage atas nama pemohon, seperti mengubah kelas penyimpanan berdasarkan Konfigurasi Object Lifecycle.

Langkah berikutnya