Dopo aver caricato un file come riferimento Cloud Storage, puoi anche recuperare e aggiornare i metadati del file, ad esempio per aggiornare il tipo di contenuti. I file possono anche memorizzare coppie chiave/valore personalizzate con metadati aggiuntivi dei file.
Recupera i metadati del file
I metadati dei file contengono proprietà comuni come name
, size
e
contentType
(spesso indicato come tipo MIME), oltre ad alcune meno
comuni come contentDisposition
e timeCreated
. Questi metadati possono essere recuperati da un riferimento Cloud Storage utilizzando il metodo metadataWithCompletion:
.
Swift
// 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 { // ... }
Objective-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' } }];
Aggiorna i metadati del file
Puoi aggiornare i metadati dei file in qualsiasi momento al termine del caricamento utilizzando il metodo updateMetadata:withCompletion:
. Consulta l'elenco completo per ulteriori informazioni sulle proprietà che possono essere aggiornate. Vengono aggiornate solo le proprietà specificate nei metadati, mentre tutte le altre rimangono invariate.
Swift
// 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 { // ... }
Objective-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 } }];
Puoi eliminare le proprietà dei metadati scrivibili impostandole su nil
:
Objective-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 } }];
Swift
let newMetadata = StorageMetadata() newMetadata.contentType = nil do { // Delete the metadata property let updatedMetadata = try await forestRef.updateMetadata(newMetadata) } catch { // ... }
Gestire gli errori
Esistono diversi motivi per cui potrebbero verificarsi errori durante l'ottenimento o l'aggiornamento dei metadati, tra cui il fatto che il file non esista o che l'utente non abbia l'autorizzazione per accedere al file desiderato. Puoi trovare ulteriori informazioni sugli errori nella sezione Gestire gli errori della documentazione.
Metadati personalizzati
Puoi specificare i metadati personalizzati come NSDictionary
contenente proprietà NSString
.
Swift
let metadata = [ "customMetadata": [ "location": "Yosemite, CA, USA", "activity": "Hiking" ] ]
Objective-C
NSDictionary *metadata = @{ @"customMetadata": @{ @"location": @"Yosemite, CA, USA", @"activity": @"Hiking" } };
Puoi archiviare i dati specifici dell'app per ogni file nei metadati personalizzati, ma ti consigliamo vivamente di utilizzare un database (ad esempio Firebase Realtime Database) per archiviare e sincronizzare questo tipo di dati.
Proprietà dei metadati dei file
Di seguito è riportato un elenco completo delle proprietà dei metadati di un file:
Proprietà | Tipo | Scrivibile |
---|---|---|
bucket |
Stringa | No |
generation |
Stringa | No |
metageneration |
Stringa | No |
fullPath |
Stringa | No |
name |
Stringa | No |
size |
Int64 | No |
timeCreated |
Data | No |
updated |
Data | No |
md5Hash |
Stringa | Sì |
cacheControl |
Stringa | Sì |
contentDisposition |
Stringa | Sì |
contentEncoding |
Stringa | Sì |
contentLanguage |
Stringa | Sì |
contentType |
Stringa | Sì |
customMetadata |
[Stringa: Stringa] | Sì |
Caricare, scaricare e aggiornare i file è importante, ma lo è anche la possibilità di rimuoverli. Scopri come eliminare i file da Cloud Storage.