Flutter'da Cloud Storage ile dosya meta verilerini kullanma

Cloud Storage referansına dosya yükledikten sonra şunu da alabilirsiniz: ve dosya meta verilerini güncelleyin (örneğin, içerik türünü görüntülemek veya güncellemek için). Dosyalar, ek dosya meta verileriyle özel anahtar/değer çiftleri de depolayabilir.

Dosya Meta Verilerini Alma

Dosya meta verileri name, size ve contentType (genellikle MIME türü olarak adlandırılır) ve daha az daha yaygın olanları (ör. contentDisposition ve timeCreated) Bu meta veri, Cloud Storage referansından alındı: getMetadata() yöntemi.

// Create reference to the file whose metadata we want to retrieve
final forestRef = storageRef.child("images/forest.jpg");

// Get metadata properties
final metadata = await forestRef.getMetadata();

// Metadata now contains the metadata for 'images/forest.jpg'

Dosya meta verilerini güncelleme

Dosya meta verilerini, dosya yüklemesi tamamlandıktan sonra istediğiniz zaman (updateMetadata() yöntemini kullanarak). Daha fazla bilgi için özellikleri hakkında daha fazla bilgi için tam listeye güncellenebilir. Yalnızca meta veride belirtilen özellikler güncellenir, diğer tüm değişiklikler değiştirilmeden bırakılır.

// Create reference to the file whose metadata we want to change
final forestRef = storageRef.child("images/forest.jpg");

// Create file metadata to update
final newMetadata = SettableMetadata(
  cacheControl: "public,max-age=300",
  contentType: "image/jpeg",
);

// Update metadata properties
final metadata = await forestRef.updateMetadata(newMetadata);

// Updated metadata for 'images/forest.jpg' is returned

null öğesini ileterek yazılabilir meta veri özelliklerini silebilirsiniz:

// Delete the cacheControl property
final newMetadata = SettableMetadata(cacheControl: null);
final metadata = await forestRef.updateMetadata(newMetadata);

Hataları Giderme

Bilgileri alma veya güncelleme sırasında hataların oluşmasının birkaç nedeni vardır: mevcut olmayan veya kullanıcının izni olmayan kullanıcı da dahil olmak üzere meta veriler istediğiniz dosyaya erişin. Hatalarla ilgili daha fazla bilgiyi şurada bulabilirsiniz: İşleyici Hataları bölümü.

Özel Meta Veriler

SettableMetadata yapıcısının customMetadata parametresini kullanarak özel meta veriler belirtebilirsiniz:

// Create reference to the file whose metadata we want to change
final forestRef = storageRef.child("images/forest.jpg");

// Create file metadata to update
final newCustomMetadata = SettableMetadata(
  customMetadata: {
    "location": "Yosemite, CA, USA",
    "activity": "Hiking",
  },
);

// Update metadata properties
final metadata = await forestRef.updateMetadata(newCustomMetadata);

// Updated metadata for 'images/forest.jpg' is returned

Her dosya için uygulamaya özel verileri özel meta verilerde saklayabilirsiniz. Ancak bir veritabanı (örneğin, Firebase Realtime Database) kullanarak bu tür verileri depolamak ve senkronize etmek için dışı verilerdir.

Dosya Meta Verisi Özellikleri

Bir dosyadaki meta veri özelliklerinin tam listesini aşağıda bulabilirsiniz:

Özellik Tür Ayarlanabilir mi?
bucket String Hayır
generation String Hayır
metageneration String Hayır
metadataGeneration String Hayır
fullPath String Hayır
name String Hayır
size int Hayır
timeCreated DateTime Hayır
updated DateTime Hayır
md5Hash String Hayır
cacheControl String Evet
contentDisposition String Evet
contentEncoding String Evet
contentLanguage String Evet
contentType String Evet
customMetadata Map<String, String> Evet

Dosya yükleme, indirme ve güncelleme kadar dosyaları kaldırabilmek de önemlidir. Şimdi dosyaları nasıl sileceğinizi öğrenelim Cloud Storage'dan edinilebilir.