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
- Cache-Control
- Content-Disposition
- Content-Encoding
- Content-Language
- Content-Type
- Custom-Time
- Penangguhan objek
- Konfigurasi retensi
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:
- Dapat diakses oleh publik.
- Tidak disimpan dalam bucket yang mengaktifkan Requester Pay.
- Tidak dienkripsi menggunakan kunci enkripsi yang disediakan pelanggan.
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 menetapkanmax-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:
public, max-age=3600
, jika objek tidak dienkripsi menggunakan kunci enkripsi yang dikelola pelanggan atau disimpan dalam perimeter layanan Virtual Private Cloud.no-cache, no-store, max-age=0
, jika objek dienkripsi menggunakan kunci enkripsi yang dikelola pelanggan.private, max-age=0
, jika objek disimpan dalam perimeter layanan Virtual Private Cloud.no-cache, no-store, max-age=0, must-revalidate
, jika objek disimpan dalam perimeter layanan Virtual Private Cloud dan dienkripsi menggunakan kunci enkripsi yang dikelola pelanggan.
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.
|
metageneration |
Mengidentifikasi versi metadata, dan meningkat setiap kali metadata dari generation yang ditetapkan diperbarui.
|
Properti generation
dan metageneration
digunakan dalam kondisi
berikut:
Saat menggunakan prasyarat di permintaan: Jika tidak dipenuhi, prasyarat dapat menyebabkan kegagalan permintaan. Jika gagal karena hal ini, permintaan tidak akan dapat menerapkan versi objek yang tidak terduga, seperti mengambil data objek yang salah atau memodifikasi status yang salah dari metadata objek.
Saat mencantumkan, mengakses, memulihkan, dan menghapus versi lama objek: Versi lama objek secara khusus relevan di bucket yang menggunakan atau sebelumnya menggunakan Pembuatan Versi Objek.
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
- Melihat dan mengedit metadata objek.
- Pelajari kelas penyimpanan yang tersedia.
- Untuk mengetahui deskripsi mendetail mengenai semua kolom metadata objek yang tersedia di JSON API, lihat Dokumentasi referensi objek untuk JSON.
- Pelajari Laporan inventaris Insight Penyimpanan, yang memungkinkan Anda mendapatkan metadata untuk semua objek di bucket sekaligus.