Bir dosyayı Cloud Storage referansına yükledikten sonra, örneğin içerik türünü güncellemek için dosya meta verilerini de alıp güncelleyebilirsiniz. Dosyalar ayrıca ek dosya meta verileriyle birlikte özel anahtar/değer çiftlerini de depolayabilir.
Dosya Meta Verilerini Al
Dosya meta verileri, contentDisposition
ve timeCreated
gibi daha az yaygın olanların yanı sıra name
, size
ve contentType
(genellikle MIME türü olarak anılır) gibi ortak özellikleri içerir. Bu meta veriler, metadataWithCompletion:
yöntemi kullanılarak bir Cloud Storage referansından alınabilir.
Süratli
// Create reference to the file whose metadata we want to retrieve let forestRef = storageRef.child("images/forest.jpg") // Get metadata properties do { let metadata = try await forestRef.getMetadata() } catch { // ... }
Amaç-C
// Create reference to the file whose metadata we want to retrieve FIRStorageReference *forestRef = [storageRef child:@"images/forest.jpg"]; // Get metadata properties [forestRef metadataWithCompletion:^(FIRStorageMetadata *metadata, NSError *error) { if (error != nil) { // Uh-oh, an error occurred! } else { // Metadata now contains the metadata for 'images/forest.jpg' } }];
Dosya Meta Verilerini Güncelle
Dosya meta verilerini, dosya yükleme işlemi tamamlandıktan sonra istediğiniz zaman updateMetadata:withCompletion:
yöntemini kullanarak güncelleyebilirsiniz. Hangi özelliklerin güncellenebileceği hakkında daha fazla bilgi için tam listeye bakın. Yalnızca meta verilerde belirtilen özellikler güncellenir, diğerleri değiştirilmeden bırakılır.
Süratli
// Create reference to the file whose metadata we want to change let forestRef = storageRef.child("images/forest.jpg") // Create file metadata to update let newMetadata = StorageMetadata() newMetadata.cacheControl = "public,max-age=300" newMetadata.contentType = "image/jpeg" // Update metadata properties do { let updatedMetadata = try await forestRef.updateMetadata(newMetadata) } catch { // ... }
Amaç-C
// Create reference to the file whose metadata we want to change FIRStorageReference *forestRef = [storageRef child:@"images/forest.jpg"]; // Create file metadata to update FIRStorageMetadata *newMetadata = [[FIRStorageMetadata alloc] init]; newMetadata.cacheControl = @"public,max-age=300"; newMetadata.contentType = @"image/jpeg"; // Update metadata properties [forestRef updateMetadata:newMetadata completion:^(FIRStorageMetadata *metadata, NSError *error){ if (error != nil) { // Uh-oh, an error occurred! } else { // Updated metadata for 'images/forest.jpg' is returned } }];
Yazılabilir meta veri özelliklerini nil
olarak ayarlayarak silebilirsiniz:
Amaç-C
FIRStorageMetadata *newMetadata = [[FIRStorageMetadata alloc] init]; newMetadata.contentType = nil; // Delete the metadata property [forestRef updateMetadata:newMetadata completion:^(FIRStorageMetadata *metadata, NSError *error){ if (error != nil) { // Uh-oh, an error occurred! } else { // metadata.contentType should be nil } }];
Süratli
let newMetadata = StorageMetadata() newMetadata.contentType = nil do { // Delete the metadata property let updatedMetadata = try await forestRef.updateMetadata(newMetadata) } catch { // ... }
Hataları İşle
Meta veri alınırken veya güncellenirken, dosyanın mevcut olmaması veya kullanıcının istenen dosyaya erişim iznine sahip olmaması da dahil olmak üzere hataların ortaya çıkmasının çeşitli nedenleri vardır. Hatalarla ilgili daha fazla bilgiyi dokümanların Hataları İşleme bölümünde bulabilirsiniz.
Özel Meta Veriler
Özel meta verileri, NSString
özelliklerini içeren bir NSDictionary
olarak belirtebilirsiniz.
Süratli
let metadata = [ "customMetadata": [ "location": "Yosemite, CA, USA", "activity": "Hiking" ] ]
Amaç-C
NSDictionary *metadata = @{ @"customMetadata": @{ @"location": @"Yosemite, CA, USA", @"activity": @"Hiking" } };
Her dosya için uygulamaya özel verileri özel meta verilerde saklayabilirsiniz, ancak bu tür verileri depolamak ve senkronize etmek için bir veritabanı ( Firebase Gerçek Zamanlı Veritabanı gibi) kullanmanızı kesinlikle öneririz.
Dosya Meta Verisi Özellikleri
Bir dosyadaki meta veri özelliklerinin tam listesi aşağıda mevcuttur:
Mülk | Tip | Yazılabilir |
---|---|---|
bucket | Sicim | HAYIR |
generation | Sicim | HAYIR |
metageneration | Sicim | HAYIR |
fullPath | Sicim | HAYIR |
name | Sicim | HAYIR |
size | Int64 | HAYIR |
timeCreated | Tarih | HAYIR |
updated | Tarih | HAYIR |
md5Hash | Sicim | Evet |
cacheControl | Sicim | Evet |
contentDisposition | Sicim | Evet |
contentEncoding | Sicim | Evet |
contentLanguage | Sicim | Evet |
contentType | Sicim | Evet |
customMetadata | [Dize: Dize] | Evet |
Dosyaları yüklemek, indirmek ve güncellemek önemlidir, ancak bunları kaldırabilmek de önemlidir. Cloud Storage'dan dosyaların nasıl silineceğini öğrenelim.