Après avoir téléchargé 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 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 du fichier
Les métadonnées de fichier contiennent des propriétés communes telles que name
, size
et contentType
(souvent appelées type MIME) en plus de certaines moins courantes comme 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 du fichier
Vous pouvez mettre à jour les métadonnées du fichier à tout moment une fois le téléchargement du fichier terminé à l'aide de la méthode updateMetadata()
. Reportez-vous à la liste complète pour plus d'informations sur les propriétés qui peuvent être mises à jour. 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 les propriétés de métadonnées inscriptibles en passant null
:
// Delete the cacheControl property
final newMetadata = SettableMetadata(cacheControl: null);
final metadata = await forestRef.updateMetadata(newMetadata);
Gérer les erreurs
Il existe un certain nombre de raisons pour lesquelles des erreurs peuvent survenir lors de l'obtention ou de la mise à jour des métadonnées, notamment si le fichier n'existe pas ou si l'utilisateur n'est pas autorisé à accéder au fichier souhaité. Plus d’informations sur les erreurs peuvent être trouvées dans 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 fortement 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
Une liste complète des propriétés de métadonnées sur un fichier est disponible ci-dessous :
Propriété | Taper | Réglable ? |
---|---|---|
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 |
Le téléchargement et la mise à jour de fichiers sont importants, tout comme la possibilité de les supprimer. Apprenons comment supprimer des fichiers de Cloud Storage.