Dosyalarınız bir Cloud Storage paketinde depolanır. Bu paketteki dosyalar, tıpkı yerel sabit diskinizdeki dosya sistemi veya Firebase Gerçek Zamanlı Veritabanındaki veriler gibi hiyerarşik bir yapıda sunulur. Bir dosyaya referans oluşturarak uygulamanız ona erişim kazanır. Bu referanslar daha sonra verileri yüklemek veya indirmek, meta verileri almak veya güncellemek ya da dosyayı silmek için kullanılabilir. Bir referans, belirli bir dosyaya veya hiyerarşideki daha yüksek düzeydeki bir düğüme işaret edebilir.
Firebase Gerçek Zamanlı Veritabanını kullandıysanız bu yollar size çok tanıdık gelecektir. Ancak dosya verileriniz Gerçek Zamanlı Veritabanında değil Bulut Depolamada depolanır.
Referans Oluştur
Dosya yüklemek veya indirmek, dosyaları silmek veya meta verileri almak veya güncellemek için üzerinde işlem yapmak istediğiniz dosyaya bir referans oluşturmalısınız. Referans, buluttaki bir dosyanın işaretçisi olarak düşünülebilir. Referanslar hafiftir, dolayısıyla ihtiyaç duyduğunuz kadar referans oluşturabilirsiniz ve ayrıca birden fazla işlem için yeniden kullanılabilirler.
Bir referans oluşturmak için, getStorage()
kullanarak Depolama hizmetinin bir örneğini alın ve ardından hizmeti argüman olarak kullanarak ref()
öğesini çağırın. Bu referans, Cloud Storage paketinizin köküne işaret eder.
Web modular API
import { getStorage, ref } from "firebase/storage"; // Get a reference to the storage service, which is used to create references in your storage bucket const storage = getStorage(); // Create a storage reference from our storage service const storageRef = ref(storage);
Web namespaced API
// Get a reference to the storage service, which is used to create references in your storage bucket var storage = firebase.storage(); // Create a storage reference from our storage service var storageRef = storage.ref();
ref()
çağırırken bu yolu ikinci bir argüman olarak ileterek, 'images/space.jpg'
gibi ağacın daha alt kısımlarındaki bir konuma referans oluşturabilirsiniz.
Web modular API
import { getStorage, ref } from "firebase/storage"; const storage = getStorage(); // Create a child reference const imagesRef = ref(storage, 'images'); // imagesRef now points to 'images' // Child references can also take paths delimited by '/' const spaceRef = ref(storage, 'images/space.jpg'); // spaceRef now points to "images/space.jpg" // imagesRef still points to "images"
Web namespaced API
// Create a child reference var imagesRef = storageRef.child('images'); // imagesRef now points to 'images' // Child references can also take paths delimited by '/' var spaceRef = storageRef.child('images/space.jpg'); // spaceRef now points to "images/space.jpg" // imagesRef still points to "images"
Referanslarla Gezin
Dosya hiyerarşisinde yukarı doğru gezinmek için parent
ve root
özelliklerini de kullanabilirsiniz. parent
bir seviye yukarı çıkarken root
en üste gider.
Web modular API
import { getStorage, ref } from "firebase/storage"; const storage = getStorage(); const spaceRef = ref(storage, 'images/space.jpg'); // Parent allows us to move to the parent of a reference const imagesRef = spaceRef.parent; // imagesRef now points to 'images' // Root allows us to move all the way back to the top of our bucket const rootRef = spaceRef.root; // rootRef now points to the root
Web namespaced API
// Parent allows us to move to the parent of a reference var imagesRef = spaceRef.parent; // imagesRef now points to 'images' // Root allows us to move all the way back to the top of our bucket var rootRef = spaceRef.root; // rootRef now points to the root
child()
, parent
ve root
her biri bir referans döndürdüğü için birden çok kez birbirine zincirlenebilir. Bunun istisnası root
öğesinin null
olan parent
.
Web modular API
import { getStorage, ref } from "firebase/storage"; const storage = getStorage(); const spaceRef = ref(storage, 'images/space.jpg'); // References can be chained together multiple times const earthRef = ref(spaceRef.parent, 'earth.jpg'); // earthRef points to 'images/earth.jpg' // nullRef is null, since the parent of root is null const nullRef = spaceRef.root.parent;
Web namespaced API
// References can be chained together multiple times var earthRef = spaceRef.parent.child('earth.jpg'); // earthRef points to 'images/earth.jpg' // nullRef is null, since the parent of root is null var nullRef = spaceRef.root.parent;
Referans Özellikleri
fullPath
, name
ve bucket
özelliklerini kullanarak işaret ettikleri dosyaları daha iyi anlamak için referansları inceleyebilirsiniz. Bu özellikler dosyanın tam yolunu, dosyanın adını ve dosyanın depolandığı paketi alır.
Web modular API
import { getStorage, ref } from "firebase/storage"; const storage = getStorage(); const spaceRef = ref(storage, 'images/space.jpg'); // Reference's path is: 'images/space.jpg' // This is analogous to a file path on disk spaceRef.fullPath; // Reference's name is the last segment of the full path: 'space.jpg' // This is analogous to the file name spaceRef.name; // Reference's bucket is the name of the storage bucket where files are stored spaceRef.bucket;
Web namespaced API
// Reference's path is: 'images/space.jpg' // This is analogous to a file path on disk spaceRef.fullPath; // Reference's name is the last segment of the full path: 'space.jpg' // This is analogous to the file name spaceRef.name; // Reference's bucket is the name of the storage bucket where files are stored spaceRef.bucket;
Referanslarla İlgili Sınırlamalar
Referans yolları ve adları herhangi bir geçerli Unicode karakter dizisini içerebilir, ancak aşağıdakiler de dahil olmak üzere belirli kısıtlamalar uygulanır:
-
reference.fullPath
dosyasının toplam uzunluğu, UTF-8 kodlandığında 1 ile 1024 bayt arasında olmalıdır. - Satırbaşı veya Satır Besleme karakterleri yok.
-
#
,[
,]
,*
veya?
kullanmaktan kaçının. çünkü bunlar Firebase Realtime Database veya gsutil gibi diğer araçlarla iyi çalışmaz.
Tam Örnek
Web modular API
import { getStorage, ref } from "firebase/storage"; const storage = getStorage(); // Points to the root reference const storageRef = ref(storage); // Points to 'images' const imagesRef = ref(storageRef, 'images'); // Points to 'images/space.jpg' // Note that you can use variables to create child values const fileName = 'space.jpg'; const spaceRef = ref(imagesRef, fileName); // File path is 'images/space.jpg' const path = spaceRef.fullPath; // File name is 'space.jpg' const name = spaceRef.name; // Points to 'images' const imagesRefAgain = spaceRef.parent;
Web namespaced API
// Points to the root reference var storageRef = firebase.storage().ref(); // Points to 'images' var imagesRef = storageRef.child('images'); // Points to 'images/space.jpg' // Note that you can use variables to create child values var fileName = 'space.jpg'; var spaceRef = imagesRef.child(fileName); // File path is 'images/space.jpg' var path = spaceRef.fullPath; // File name is 'space.jpg' var name = spaceRef.name; // Points to 'images' var imagesRef = spaceRef.parent;
Şimdi dosyaları Cloud Storage'a nasıl yükleyeceğimizi öğrenelim.