Membuat Referensi Storage dengan Cloud Storage untuk Unity

File Anda disimpan di bucket Google Cloud Storage. File di bucket ini disajikan secara hierarkis, seperti sistem file pada hard disk lokal atau data dalam Firebase Realtime Database. Dengan membuat referensi ke sebuah file, aplikasi Anda akan mendapatkan akses ke file tersebut. Selanjutnya, referensi ini bisa digunakan untuk mengupload atau mendownload data, memperoleh atau mengupdate metadata, atau menghapus file. Referensi bisa menunjuk ke file tertentu atau ke node berlevel lebih tinggi dalam hierarki.

Jika Anda telah menggunakan Firebase Realtime Database, lokasi ini tentu sudah tidak asing bagi Anda. Namun, data file Anda tersimpan di Google Cloud Storage, bukan di Realtime Database.

Membuat Referensi

Buat referensi untuk mengupload, mendownload, atau menghapus file, atau untuk memperoleh atau mengupdate metadatanya. Referensi bisa dianggap sebagai penunjuk ke file di cloud. Referensi bisa dijalankan dengan praktis, sehingga Anda bisa membuat sebanyak yang dibutuhkan. Referensi juga bisa digunakan kembali untuk beberapa operasi.

Referensi dibuat dari layanan Firebase.Storage.FirebaseStorage pada aplikasi Firebase dengan memanggil metode GetReferenceFromUrl() dan meneruskannya dalam URL dengan format gs://<your-cloud-storage-bucket>. Anda bisa menemukan URL ini di bagian Storage pada Firebase console.

// Get a reference to the storage service, using the default Firebase App
Firebase.Storage.FirebaseStorage storage = Firebase.Storage.FirebaseStorage.DefaultInstance;

// Create a storage reference from our storage service
Firebase.Storage.StorageReference storage_ref =
  storage.GetReferenceFromUrl("gs://<your-cloud-storage-bucket>");

Anda bisa membuat referensi ke lokasi yang lebih rendah pada hierarki, misalnya 'images/space.jpg', dengan menggunakan metode child pada referensi yang ada.

// Create a child reference
// images_ref now points to "images"
Firebase.Storage.StorageReference images_ref = storage_ref.Child("images");

// Child references can also take paths delimited by '/' such as:
// "images/space.jpg".
Firebase.Storage.StorageReference space_ref = images_ref.Child("space.jpg");
// space_ref now points to "images/space.jpg"
// images_ref still points to "images"

// This is equivalent to creating the full reference
Firebase.Storage.StorageReference space_ref = storage.GetReferenceFromUrl(
    "gs://<your-cloud-storage-bucket>/images/space.jpg");

Anda juga dapat menggunakan metode Parent dan Root untuk pindah ke atas pada hierarki file kami. Parent naik 1 level ke atas, sedangkan Root naik langsung ke puncak hierarki.

// Parent allows us to move to the parent of a reference
// images_ref now points to 'images'
Firebase.Storage.StorageReference images_ref = space_ref.Parent;

// Root allows us to move all the way back to the top of our bucket
// root_ref now points to the root
Firebase.Storage.StorageReference root_ref = space_ref.Root;

Child, Parent, dan Root bisa dirangkai bersama beberapa kali, mengingat masing-masing menampilkan sebuah referensi. Ini tidak berlaku untuk Parent pada Root yang merupakan StorageReference yang tidak valid.

// References can be chained together multiple times
// earth_ref points to "images/earth.jpg"
Firebase.Storage.StorageReference earth_ref =
  space_ref.Parent.Child("earth.jpg");

// null_ref is null since the parent of root is an invalid StorageReference
Firebase.Storage.StorageReference null_ref = space_ref.Root.Parent;

Metode Referensi

Anda dapat memeriksa referensi untuk lebih memahami file yang ditunjuk dengan menggunakan properti Path, Name, dan Bucket. Properti ini akan mengambil nama, bucket, dan lokasi lengkap dari file tersebut.

// Reference's path is: "images/space.jpg"
// This is analogous to a file path on disk
space_ref.Path;

// Reference's name is the last segment of the full path: "space.jpg"
// This is analogous to the file name
space_ref.Name;

// Reference's bucket is the name of the storage bucket where files are stored
space_ref.Bucket;

Pembatasan Referensi

Lokasi dan nama referensi bisa memuat rangkaian karakter Unicode yang valid, tetapi pembatasan tertentu tetap diberlakukan, antara lain:

  1. Panjang total reference.Path harus antara 1 dan 1.024 byte jika menggunakan enkode UTF-8.
  2. Tidak mengandung karakter Enter atau Line Feed.
  3. Hindari penggunaan #, [, ], *, atau ?, karena karakter tersebut tidak berfungsi dengan baik dengan fitur lain, seperti Firebase Realtime Database atau gsutil.

Contoh Lengkap

Firebase.Storage.FirebaseStorage storage = Firebase.Storage.FirebaseStorage.DefaultInstance;

// Points to the root reference
Firebase.Storage.StorageReference storage_ref =
  storage.GetReferenceFromUrl("gs://<your-bucket-name>");

// Points to "images"
Firebase.Storage.StorageReference images_ref = storage_ref.Child("images");

// Points to "images/space.jpg"
// Note that you can use variables to create child values
string filename = "space.jpg";
Firebase.Storage.StorageReference space_ref = images_ref.Child(filename);

// File path is "images/space.jpg"
string path = space_ref.Path;

// File name is "space.jpg"
string name = space_ref.Name;

// Points to "images"
Firebase.Storage.StorageReference images_ref = space_ref.Parent;

Langkah Berikutnya

Selanjutnya, mari pelajari cara mengupload file ke Cloud Storage.

Kirim masukan tentang...

Butuh bantuan? Kunjungi halaman dukungan kami.