Menggunakan Metadata File dengan Cloud Storage untuk Unity

Setelah mengupload file ke referensi Cloud Storage, Anda juga dapat mengambil dan mengupdate metadata file, misalnya untuk mengupdate jenis konten. File juga dapat menyimpan key-value pair khusus dengan metadata file tambahan.

Mengambil Metadata File

Metadata file berisi properti umum seperti Name, SizeBytes, dan ContentType (sering disebut sebagai jenis MIME), selain beberapa properti yang kurang umum seperti ContentDisposition dan CreationTimeMillis. Metadata ini dapat diambil dari referensi Cloud Storage menggunakan metode GetMetadataAsync.

// Create reference to the file whose metadata we want to retrieve
Firebase.Storage.StorageReference forest_ref =
  storage_ref.Child("images/forest.jpg");

// Get metadata properties
forest_ref.GetMetadataAsync().ContinueWith((Task<StorageMetadata> task) => {
  if (!task.IsFaulted && !task.IsCanceled) {
    Firebase.Storage.StorageMetadata meta = task.Result;
    // do stuff with meta
  }
});

Mengupdate Metadata File

Anda dapat mengupdate metadata file kapan saja setelah selesai mengupload file menggunakan metode UpdateMetadataAsync yang mengambil objek MetadataChange. Lihat daftar lengkap untuk mengetahui informasi lebih lanjut mengenai properti yang dapat diupdate. Hanya properti yang ditetapkan dalam metadata yang akan diupdate, sedangkan yang lainnya tidak berubah.

// Create reference to the file whose metadata we want to change
StorageReference forest_ref = storage_ref.child("images/forest.jpg");

// Create file metadata to update
var new_metadata = new Firebase.Storage.MetadataChange();
new_metadata.CacheControl = "public,max-age=300";
new_metadata.ContentType = "image/jpeg";

// Update metadata properties
forest_ref.UpdateMetadataAsync(new_metadata).ContinueWith(task => {
    if (!task.IsFaulted && !task.IsCanceled) {
        // access the updated meta data
        Firebase.Storage.StorageMetadata meta = task.Result;
    }
});

Anda dapat menghapus properti metadata yang dapat ditulis dengan meneruskan string kosong:

// Create file metadata to update
var new_metadata = new Firebase.Storage.MetadataChange();
new_metadata.ContentType = "";

// Update metadata properties
forest_ref.UpdateMetadataAsync(new_metadata).ContinueWith(task => {
    if (!task.IsFaulted && !task.IsCanceled) {
        Firebase.Storage.StorageMetadata meta = task.Result;
        // meta.ContentType should be an empty string now
    }
});

Menangani Error

Ada sejumlah alasan mengapa error dapat terjadi saat mengambil atau mengupdate metadata, termasuk tidak adanya file atau pengguna tidak memiliki izin untuk mengakses file yang diinginkan. Informasi lebih lanjut mengenai error bisa dilihat di bagian Menangani Error pada dokumen.

Metadata Khusus

Anda dapat menetapkan metadata khusus sebagai Dictionary<string, string>.

var new_metadata = new Firebase.Storage.MetadataChange {
  CustomMetadata = new Dictionary<string, string> {
     {"location", "Yosemite, CA, USA"},
     {"activity", "Hiking"}
  }
}

// UpdateMetadataAsync

Anda dapat menyimpan data khusus aplikasi untuk setiap file dalam metadata khusus, tetapi kami sangat menyarankan penggunaan database (seperti Firebase Realtime Database) untuk menyimpan dan menyinkronkan jenis data ini.

Properti Metadata File

Daftar lengkap properti metadata pada file tercantum di bawah ini:

Properti Jenis Dapat Diubah di MetadataChange
Bucket string TIDAK
Generation string TIDAK
MetadataGeneration string TIDAK
Path string TIDAK
Name string TIDAK
SizeBytes long TIDAK
CreationTimeMillis long TIDAK
UpdatedTimeMillis long TIDAK
CacheControl string YA
ContentDisposition string YA
ContentEncoding string YA
ContentLanguage string YA
ContentType string YA
DownloadUrl Uri TIDAK
DownloadUrls IList<Uri> TIDAK
CustomMetadataKeys IEnumerable<string> YA

Langkah Berikutnya

Mengupload, mendownload, dan mengupdate file itu penting, namun kita juga harus bisa menghapusnya. Mari pelajari cara menghapus file dari Cloud Storage.

Kirim masukan tentang...

Butuh bantuan? Kunjungi halaman dukungan kami.