C++ için Cloud Storage ile Cloud Storage referansı oluşturma

Dosyalarınız şurada depolanır: Cloud Storage paketi. İlgili içeriği oluşturmak için kullanılan bu paketteki dosyalar tıpkı sizin gibi hiyerarşik bir yapıda sunulur yerel sabit diskinizdeki dosya sistemini veya Firebase Realtime Database içindeki verileri görebilirsiniz. Bir dosyaya referans oluşturduğunuzda uygulamanız ilgili dosyaya erişim kazanır. Bu referanslar Veri yüklemek veya indirmek, meta verileri almak ya da güncellemek ya da verileri silmek için kullanılabilir. seçin. Referans, belirli bir dosyaya veya daha üst bir düzeye işaret edebilir düğümünü aratın.

Firebase Realtime Database kullandıysanız bu yollar size tanıdık gelebilir. Ancak dosya verileriniz şurada saklanır: Cloud Storage, Realtime Database içinde değil.

Referans Oluşturma

Dosya yüklemek, indirmek veya silmek için referans oluşturma, veya meta verilerini almak ya da güncellemek için kullanılır. Referans , buluttaki bir dosyaya işaret eden bir işaret olarak düşünülebilir. Referanslar: hafif, böylece ihtiyacınız olduğu kadar oluşturabilirsiniz. Bunlar ayrıca yeniden kullanılabilir birden fazla işlem yapabilirsiniz.

Referanslar, Firebase uygulamanızdaki storage hizmetinden şunun tarafından oluşturulur: GetReferenceFromUrl() yöntemini çağırma ve formun URL'sini iletme gs://<your-cloud-storage-bucket>. Bu URL'yi Firebase konsolunun Storage bölümü.

// Get a reference to the storage service, using the default Firebase App
Storage* storage = Storage::GetInstance(app);

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

Ağaçta daha aşağıda bir konum için referans oluşturabilirsiniz. Örneğin, mevcut bir referansta child yöntemini kullanarak 'images/space.jpg' deyin.

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

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

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

Dosyamızda yukarı gitmek için Parent ve Root yöntemlerini de kullanabilirsiniz hiyerarşik olarak düzenlenmiştir. Parent bir seviye yukarı giderken Root tamamen gider dokunun.

// Parent allows us to move to the parent of a reference
// images_ref now points to 'images'
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
StorageReference root_ref = space_ref.Root();

Child, Parent ve Root, aşağıdaki gibi birden çok kez zincirlenebilir: her biri bir başvuru döndürür. Bunun istisnası, Root metriğinin Parent. geçersiz bir StorageReference.

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

// null_ref is null, since the parent of root is an invalid StorageReference
StorageReference null_ref = space_ref.Root().Parent();

Referans Yöntemleri

Yönlendirdikleri dosyaları daha iyi anlamak için referansları incelemek için full_path, name ve bucket yöntemleri. Bu yöntemlerde dosya yol, ad ve pakettir.

// Reference's path is: "images/space.jpg"
// This is analogous to a file path on disk
space_ref.full_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 Cloud Storage bucket where files are stored
space_ref.bucket();

Referanslarla ilgili Sınırlamalar

Referans yolları ve adları, geçerli Unicode karakterlerinden oluşan herhangi bir diziyi içerebilir. ancak aşağıdakileri de içeren belirli kısıtlamalar uygulanır:

  1. UTF-8 olarak kodlandığında referans.fullPath toplam uzunluğu 1 ile 1.024 bayt arasında olmalıdır.
  2. Satır Başı veya Satır Feed'i karakterleri yok.
  3. #, [, ], * veya ? ile iyi sonuç vermediğinden bunları kullanmaktan kaçının. Firebase Realtime Database ve diğer araçlar veya gsutil.

Tam Örnek

Storage* storage = Storage::GetInstance(app);

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

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

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

// File path is "images/space.jpg"
std::string path = space_ref.full_path()

// File name is "space.jpg"
std::string name = space_ref.name()

// Points to "images"
StorageReference images_ref = space_ref.Parent();

Sonraki adımlar

Şimdi de bir proje yöneticisinin dosyaları yükle Cloud Storage.