Après avoir importé un fichier dans la référence Cloud Storage, vous pouvez également obtenir et mettre à jour les métadonnées du fichier, par exemple pour mettre à jour le type de contenu. Les fichiers peuvent également stocker des paires clé/valeur personnalisées avec des métadonnées de fichier supplémentaires.
Obtenir les métadonnées d'un fichier
Les métadonnées de fichier contiennent des propriétés courantes telles que Name, SizeBytes et ContentType (souvent appelées "type MIME"), ainsi que d'autres moins courantes telles que ContentDisposition et CreationTimeMillis. Ces métadonnées peuvent être récupérées à partir d'une référence Cloud Storage à l'aide de la méthode 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 } });
Mettre à jour les métadonnées du fichier
Vous pouvez mettre à jour les métadonnées d'un fichier à tout moment après l'importation du fichier à l'aide de la méthode UpdateMetadataAsync, qui utilise un objet MetadataChange.
Pour en savoir plus sur les propriétés pouvant être mises à jour, consultez la liste complète. Seules les propriétés spécifiées dans les métadonnées sont mises à jour. Toutes les autres restent inchangées.
// 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; } });
Vous pouvez supprimer les propriétés de métadonnées accessibles en écriture en transmettant une chaîne vide :
// 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 } });
Gérer les erreurs
Plusieurs raisons peuvent expliquer l'apparition d'erreurs lors de l'obtention ou de la mise à jour des métadonnées, par exemple si le fichier n'existe pas ou si l'utilisateur n'est pas autorisé à accéder au fichier souhaité. Pour en savoir plus sur les erreurs, consultez la section Gérer les erreurs de la documentation.
Métadonnées personnalisées
Vous pouvez spécifier des métadonnées personnalisées en tant que Dictionary<string, string>.
var newMetadata = new MetadataChange { CustomMetadata = new Dictionary<string, string> { {"location", "Yosemite, CA, USA"}, {"activity", "Hiking"} } }; // UpdateMetadataAsync
Vous pouvez stocker des données spécifiques à l'application pour chaque fichier dans des métadonnées personnalisées, mais nous vous recommandons vivement d'utiliser une base de données (telle que Firebase Realtime Database) pour stocker et synchroniser ce type de données.
Propriétés des métadonnées de fichier
Vous trouverez ci-dessous la liste complète des propriétés de métadonnées d'un fichier :
| Propriété | Type | Modifiable dans MetadataChange |
|---|---|---|
Bucket |
string |
NON |
Generation |
string |
NO |
MetadataGeneration |
string |
NO |
Path |
string |
NO |
Name |
string |
NO |
SizeBytes |
long |
NO |
CreationTimeMillis |
long |
NO |
UpdatedTimeMillis |
long |
NON |
CacheControl |
string |
OUI |
ContentDisposition |
string |
OUI |
ContentEncoding |
string |
OUI |
ContentLanguage |
string |
OUI |
ContentType |
string |
OUI |
DownloadUrl |
Uri |
NON |
DownloadUrls |
IList<Uri> |
NON |
CustomMetadataKeys |
IEnumerable<string> |
OUI |
Étapes suivantes
L'importation, le téléchargement et la mise à jour de fichiers sont importants, mais il est également essentiel de pouvoir les supprimer. Découvrez comment supprimer des fichiers de Cloud Storage.