Après avoir téléchargé un fichier sur 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 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 metadataWithCompletion:
Rapide
// 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 { // ... }
Objectif 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' } }];
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:withCompletion:
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.
Rapide
// 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 { // ... }
Objectif 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 } }];
Vous pouvez supprimer les propriétés des métadonnées accessibles en écriture en les définissant sur nil
:
Objectif 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 } }];
Rapide
let newMetadata = StorageMetadata() newMetadata.contentType = nil do { // Delete the metadata property let updatedMetadata = try await forestRef.updateMetadata(newMetadata) } catch { // ... }
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 en tant que NSDictionary
contenant des propriétés NSString
.
Rapide
let metadata = [ "customMetadata": [ "location": "Yosemite, CA, USA", "activity": "Hiking" ] ]
Objectif c
NSDictionary *metadata = @{ @"customMetadata": @{ @"location": @"Yosemite, CA, USA", @"activity": @"Hiking" } };
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 | Inscriptible |
---|---|---|
bucket | Chaîne | Non |
generation | Chaîne | Non |
metageneration | Chaîne | Non |
fullPath | Chaîne | Non |
name | Chaîne | Non |
size | Int64 | Non |
timeCreated | Date | Non |
updated | Date | Non |
md5Hash | Chaîne | Oui |
cacheControl | Chaîne | Oui |
contentDisposition | Chaîne | Oui |
contentEncoding | Chaîne | Oui |
contentLanguage | Chaîne | Oui |
contentType | Chaîne | Oui |
customMetadata | [Chaîne : Chaîne] | 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.