Po przesłaniu pliku do Cloud Storage możesz także pobrać lub zaktualizować metadane pliku, na przykład w celu aktualizacji typu zawartości. Pliki mogą również przechowywać niestandardowe pary klucz/wartość z dodatkowymi metadanymi pliku.
Pobierz metadane pliku
Metadane pliku zawierają wspólne właściwości, takie jak name
, size
i contentType
(często określane jako typ MIME), a także mniej popularne, takie jak contentDisposition
i timeCreated
. Te metadane można pobrać z odniesienia do Cloud Storage za pomocą metody getMetadata()
. getMetadata()
zwraca Promise
zawierającą pełne metadane lub błąd, jeśli Promise
zostanie odrzucona.
Web modular API
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 namespaced API
// 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! });
Zaktualizuj metadane pliku
Metadane pliku można zaktualizować w dowolnym momencie po zakończeniu przesyłania pliku, korzystając z metody updateMetadata()
. Więcej informacji na temat właściwości, które można aktualizować, można znaleźć na pełnej liście . Aktualizowane są tylko właściwości określone w metadanych, wszystkie pozostałe pozostają niezmienione. updateMetadata()
zwraca Promise
zawierającą pełne metadane lub błąd, jeśli Promise
zostanie odrzucona.
Web modular API
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 namespaced API
// 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! });
Możesz usunąć właściwość metadanych, ustawiając ją na null
:
Web modular API
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 namespaced API
// 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! });
Obsługa błędów
Istnieje wiele powodów, dla których mogą wystąpić błędy podczas pobierania lub aktualizowania metadanych, na przykład nieistniejący plik lub brak uprawnień dostępu użytkownika do żądanego pliku. Więcej informacji na temat błędów można znaleźć w sekcji Obsługiwanie błędów w dokumentacji.
Niestandardowe metadane
Możesz określić niestandardowe metadane jako obiekt zawierający właściwości String
.
Web modular API
const metadata = { customMetadata: { 'location': 'Yosemite, CA, USA', 'activity': 'Hiking' } };
Web namespaced API
var metadata = { customMetadata: { 'location': 'Yosemite, CA, USA', 'activity': 'Hiking' } };
Możesz używać niestandardowych metadanych do przechowywania dodatkowych danych specyficznych dla aplikacji dla każdego pliku, ale zdecydowanie zalecamy korzystanie z bazy danych (takiej jak baza danych Firebase Realtime Database ) do przechowywania i synchronizowania tego typu danych.
Właściwości metadanych pliku
Pełna lista właściwości metadanych pliku jest dostępna poniżej:
Nieruchomość | Typ | Możliwość zapisu |
---|---|---|
bucket | strunowy | NIE |
generation | strunowy | NIE |
metageneration | strunowy | NIE |
fullPath | strunowy | NIE |
name | strunowy | NIE |
size | numer | NIE |
timeCreated | strunowy | NIE |
updated | strunowy | NIE |
md5Hash | strunowy | TAK przy przesyłaniu, NIE przy updateMetadata |
cacheControl | strunowy | TAK |
contentDisposition | strunowy | TAK |
contentEncoding | strunowy | TAK |
contentLanguage | strunowy | TAK |
contentType | strunowy | TAK |
customMetadata | Obiekt zawierający odwzorowania typu string->string | TAK |
Przesyłanie, pobieranie i aktualizowanie plików jest ważne, ale równie ważna jest możliwość ich usunięcia. Dowiedzmy się, jak usunąć pliki z Cloud Storage.