Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

Utiliser les métadonnées de fichiers avec Cloud Storage sur le Web

Restez organisé à l'aide des collections Enregistrez et classez les contenus selon vos préférences.

Après avoir importé un fichier dans la référence Cloud Storage, vous pouvez également obtenir ou 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 courantes telles que name , size et contentType (souvent appelées type MIME) en plus de propriétés 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() . getMetadata() renvoie une Promise contenant les métadonnées complètes, ou une erreur si la Promise rejette.

Web version 9

import { getStorage, ref, getMetadata } from "firebase/storage";

// Create a reference to the file whose metadata we want to retrieve
const storage = getStorage();
const forestRef = ref(storage, 'images/forest.jpg');

// Get metadata properties
getMetadata(forestRef)
  .then((metadata) => {
    // Metadata now contains the metadata for 'images/forest.jpg'
  })
  .catch((error) => {
    // Uh-oh, an error occurred!
  });

Web version 8

// Create a reference to the file whose metadata we want to retrieve
var forestRef = storageRef.child('images/forest.jpg');

// Get metadata properties
forestRef.getMetadata()
  .then((metadata) => {
    // Metadata now contains the metadata for 'images/forest.jpg'
  })
  .catch((error) => {
    // Uh-oh, an error occurred!
  });

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é en utilisant la méthode updateMetadata() . Reportez-vous à la liste complète pour plus d'informations sur les propriétés pouvant ê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. updateMetadata() renvoie une Promise contenant les métadonnées complètes, ou une erreur si la Promise rejette.

Web version 9

import { getStorage, ref, updateMetadata } from "firebase/storage";

// Create a reference to the file whose metadata we want to change
const storage = getStorage();
const forestRef = ref(storage, 'images/forest.jpg');

// Create file metadata to update
const newMetadata = {
  cacheControl: 'public,max-age=300',
  contentType: 'image/jpeg'
};

// Update metadata properties
updateMetadata(forestRef, newMetadata)
  .then((metadata) => {
    // Updated metadata for 'images/forest.jpg' is returned in the Promise
  }).catch((error) => {
    // Uh-oh, an error occurred!
  });

Web version 8

// Create a reference to the file whose metadata we want to change
var forestRef = storageRef.child('images/forest.jpg');

// Create file metadata to update
var newMetadata = {
  cacheControl: 'public,max-age=300',
  contentType: 'image/jpeg'
};

// Update metadata properties
forestRef.updateMetadata(newMetadata)
  .then((metadata) => {
    // Updated metadata for 'images/forest.jpg' is returned in the Promise
  }).catch((error) => {
    // Uh-oh, an error occurred!
  });

Vous pouvez supprimer une propriété de métadonnées en la définissant sur null :

Web version 9

import { getStorage, ref, updateMetadata } from "firebase/storage";

const storage = getStorage();
const forestRef = ref(storage, 'images/forest.jpg');

// Create file metadata with property to delete
const deleteMetadata = {
  contentType: null
};

// Delete the metadata property
updateMetadata(forestRef, deleteMetadata)
  .then((metadata) => {
    // metadata.contentType should be null
  }).catch((error) => {
    // Uh-oh, an error occurred!
  });

Web version 8

// Create file metadata with property to delete
var deleteMetadata = {
  contentType: null
};

// Delete the metadata property
forestRef.updateMetadata(deleteMetadata)
  .then((metadata) => {
    // metadata.contentType should be null
  }).catch((error) => {
    // Uh-oh, an error occurred!
  });

Gérer les erreurs

Il existe un certain nombre de raisons pour lesquelles des erreurs peuvent se produire lors de l'obtention ou de la mise à jour des métadonnées, notamment le fait que le fichier n'existe pas ou que l'utilisateur n'a pas l'autorisation d'accéder au fichier souhaité. Vous trouverez plus d'informations sur les erreurs 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 qu'objet contenant des propriétés String .

Web version 9

const metadata = {
  customMetadata: {
    'location': 'Yosemite, CA, USA',
    'activity': 'Hiking'
  }
};

Web version 8

var metadata = {
  customMetadata: {
    'location': 'Yosemite, CA, USA',
    'activity': 'Hiking'
  }
};

Vous pouvez utiliser des métadonnées personnalisées pour stocker des données supplémentaires spécifiques à l'application pour chaque fichier, 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

Une liste complète des propriétés des métadonnées d'un fichier est disponible ci-dessous :

Propriété Taper Inscriptible
bucket chaîne de caractères NON
generation chaîne de caractères NON
metageneration chaîne de caractères NON
fullPath chaîne de caractères NON
name chaîne de caractères NON
size Numéro NON
timeCreated chaîne de caractères NON
updated chaîne de caractères NON
md5Hash chaîne de caractères OUI lors du téléchargement, NON lors de la mise à jour des métadonnées
cacheControl chaîne de caractères OUI
contentDisposition chaîne de caractères OUI
contentEncoding chaîne de caractères OUI
contentLanguage chaîne de caractères OUI
contentType chaîne de caractères OUI
customMetadata Objet contenant des mappages chaîne->chaîne OUI

Le téléchargement, le téléchargement et la mise à jour de fichiers sont importants, mais il est tout aussi important de pouvoir les supprimer. Apprenons à supprimer des fichiers de Cloud Storage.