Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

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

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 des métadonnées de fichier

Métadonnées du fichier contient des propriétés communes telles que le name , la size et contentType (souvent désigné comme le type MIME) , en plus de certains moins communs comme contentDisposition et timeCreated . Ces métadonnées peuvent être récupérées à partir d' une référence de stockage en utilisant le nuage getMetadata() méthode. getMetadata() retourne une Promise contenant les métadonnées complet, 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 de fichier à tout moment après le finalise de téléchargement de fichiers en utilisant le updateMetadata() méthode. Reportez - vous à la liste complète pour plus d' informations sur les propriétés peuvent être mises à jour. Seules les propriétés spécifiées dans les métadonnées sont mises à jour, toutes les autres ne sont pas modifiées. updateMetadata() retourne une Promise contenant les métadonnées complet, 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 mettant à 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, y compris le fichier n'existant pas, ou l'utilisateur n'ayant pas la permission d'accéder au fichier souhaité. Plus d' informations sur les erreurs peuvent être trouvées dans les erreurs de poignée section de la documentation.

Métadonnées personnalisées

Vous pouvez spécifier des métadonnées personnalisées comme un objet contenant String propriétés.

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 les métadonnées personnalisées pour stocker des données spécifiques d'application supplémentaires pour chaque fichier, mais nous vous recommandons fortement d' utiliser une base de données (comme la base de données en temps réel Firebase ) 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 :

Biens Taper Écriture
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 des fichiers sont importants, mais il est tout aussi important de pouvoir les supprimer. Apprenons comment supprimer des fichiers de Cloud Storage.