Après avoir importé un fichier dans une référence Cloud Storage, vous pouvez également obtenir et mettre à jour les métadonnées du fichier, par exemple pour afficher ou 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 des fichiers
Les métadonnées de fichier contiennent des propriétés courantes telles que name
, size
et contentType
(souvent appelées type MIME), ainsi que des propriétés moins courantes telles que contentDisposition
et timeCreated
. Ces métadonnées peuvent être récupérées à partir d'une référence Cloud Storage à l'aide de la méthode getMetadata()
.
// 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'
Mettre à jour les métadonnées des fichiers
Vous pouvez mettre à jour les métadonnées des fichiers à tout moment après l'importation des fichiers à l'aide de la méthode updateMetadata()
. 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
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
Vous pouvez supprimer des propriétés de métadonnées encodables en transmettant null
:
// Delete the cacheControl property
final newMetadata = SettableMetadata(cacheControl: null);
final metadata = await forestRef.updateMetadata(newMetadata);
Gérer les erreurs
Plusieurs raisons peuvent expliquer l'apparition d'erreurs lors de l'obtention ou de la mise à jour de métadonnées, y compris 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 à l'aide du paramètre customMetadata
du constructeur SettableMetadata
:
// 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
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 | Peut-il être défini ? |
---|---|---|
bucket |
String |
Non |
generation |
String |
Non |
metageneration |
String |
Non |
metadataGeneration |
String |
Non |
fullPath |
String |
Non |
name |
String |
Non |
size |
int |
Non |
timeCreated |
DateTime |
Non |
updated |
DateTime |
Non |
md5Hash |
String |
Non |
cacheControl |
String |
Oui |
contentDisposition |
String |
Oui |
contentEncoding |
String |
Oui |
contentLanguage |
String |
Oui |
contentType |
String |
Oui |
customMetadata |
Map<String, String> |
Oui |
Importer, télécharger et mettre à jour des fichiers est important, mais il est également important de pouvoir les supprimer. Apprenons à supprimer des fichiers dans Cloud Storage.