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 archiviare coppie chiave/valore personalizzate con metadati aggiuntivi.
Recupera metadati file
I metadati dei file contengono proprietà comuni come Name
, SizeBytes
e
ContentType
(spesso indicato come tipo MIME), oltre ad alcune
meno comuni come ContentDisposition
e CreationTimeMillis
. Questi
metadati possono essere recuperati da un riferimento Cloud Storage utilizzando il
metodo GetMetadataAsync
.
// Create reference to the file whose metadata we want to retrieve StorageReference forestRef = storageRef.Child("images/forest.jpg"); // Get metadata properties forestRef.GetMetadataAsync().ContinueWithOnMainThread(task => { if (!task.IsFaulted && !task.IsCanceled) { StorageMetadata meta = task.Result; // do stuff with meta } });
Aggiornare i metadati del file
Puoi aggiornare i metadati del file in qualsiasi momento dopo il completamento del caricamento del file utilizzando il metodo UpdateMetadataAsync
, che accetta un oggetto MetadataChange
.
Per ulteriori informazioni sulle proprietà che possono essere aggiornate, consulta l'elenco completo. Vengono aggiornate solo le proprietà specificate nei metadati, tutte le altre rimangono invariate.
// Create reference to the file whose metadata we want to change StorageReference forestRef = storageRef.Child("images/forest.jpg"); // Create file metadata to update var newMetadata = new MetadataChange(); newMetadata.CacheControl = "public,max-age=300"; newMetadata.ContentType = "image/jpeg"; // Update metadata properties forestRef.UpdateMetadataAsync(newMetadata).ContinueWithOnMainThread(task => { if (!task.IsFaulted && !task.IsCanceled) { // access the updated meta data StorageMetadata meta = task.Result; } });
Puoi eliminare le proprietà dei metadati scrivibili passando la stringa vuota:
// Create file metadata to update var newMetadata = new MetadataChange(); newMetadata.ContentType = ""; // Update metadata properties forestRef.UpdateMetadataAsync(newMetadata).ContinueWithOnMainThread(task => { if (!task.IsFaulted && !task.IsCanceled) { StorageMetadata meta = task.Result; // meta.ContentType should be an empty string now } });
Gestisci gli errori
Esistono diversi motivi per cui potrebbero verificarsi errori durante il recupero o l'aggiornamento dei metadati, tra cui l'inesistenza del file o la mancanza di autorizzazione dell'utente per accedere al file desiderato. Per ulteriori informazioni sugli errori, consulta la sezione Gestire gli errori della documentazione.
Metadati personalizzati
Puoi specificare metadati personalizzati come Dictionary<string, string>
.
var newMetadata = new MetadataChange { CustomMetadata = new Dictionary<string, string> { {"location", "Yosemite, CA, USA"}, {"activity", "Hiking"} } }; // UpdateMetadataAsync
Puoi memorizzare dati specifici dell'app per ogni file nei metadati personalizzati, ma ti consigliamo vivamente di utilizzare un database (ad esempio Firebase Realtime Database) per memorizzare e sincronizzare questo tipo di dati.
Proprietà dei metadati del file
Di seguito è riportato un elenco completo delle proprietà dei metadati di un file:
Proprietà | Tipo | Modificabile in MetadataChange |
---|---|---|
Bucket |
string |
NO |
Generation |
string |
NO |
MetadataGeneration |
string |
NO |
Path |
string |
NO |
Name |
string |
NO |
SizeBytes |
long |
NO |
CreationTimeMillis |
long |
NO |
UpdatedTimeMillis |
long |
NO |
CacheControl |
string |
SÌ |
ContentDisposition |
string |
SÌ |
ContentEncoding |
string |
SÌ |
ContentLanguage |
string |
SÌ |
ContentType |
string |
SÌ |
DownloadUrl |
Uri |
NO |
DownloadUrls |
IList<Uri> |
NO |
CustomMetadataKeys |
IEnumerable<string> |
SÌ |
Passaggi successivi
Il caricamento, il download e l'aggiornamento dei file sono importanti, ma lo è anche la possibilità di rimuoverli. Scopriamo come eliminare i file da Cloud Storage.