Po przesłaniu pliku do odwołania do Cloud Storage możesz także pobrać lub zaktualizować metadane pliku, na przykład w celu zaktualizowania typu zawartości. Pliki mogą również przechowywać niestandardowe pary klucz/wartość z dodatkowymi metadanymi pliku.
Pobierz metadane pliku
Metadane pliku zawierają typowe właściwości, takie jak name
, size
i contentType
(często określane jako typ MIME), oprócz niektórych mniej powszechnych właściwości, takich jak contentDisposition
i timeCreated
. Te metadane można pobrać z odwołania do Cloud Storage za pomocą metody getMetadata()
. getMetadata()
zwraca Promise
zawierającą pełne metadane lub błąd w przypadku odrzucenia Promise
.
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! });
Zaktualizuj metadane pliku
Metadane pliku można zaktualizować w dowolnym momencie po zakończeniu przesyłania pliku za pomocą metody updateMetadata()
. Zapoznaj się z pełną listą , aby uzyskać więcej informacji na temat właściwości, które można zaktualizować. Aktualizowane są tylko właściwości określone w metadanych, wszystkie inne pozostają niezmienione. updateMetadata()
zwraca Promise
zawierającą pełne metadane lub błąd w przypadku odrzucenia Promise
.
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! });
Możesz usunąć właściwość metadanych, ustawiając ją na 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! });
Obsługa błędów
Istnieje wiele powodów, dla których mogą wystąpić błędy podczas pobierania lub aktualizowania metadanych, w tym plik nie istnieje lub użytkownik nie ma uprawnień dostępu do żądanego pliku. Więcej informacji na temat błędów można znaleźć w sekcji Obsługa błędów w dokumentacji.
Niestandardowe metadane
Możesz określić niestandardowe metadane jako obiekt zawierający właściwości typu 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' } };
Możesz użyć niestandardowych metadanych do przechowywania dodatkowych danych specyficznych dla aplikacji dla każdego pliku, ale zdecydowanie zalecamy korzystanie z bazy danych (takiej jak Baza danych czasu rzeczywistego Firebase ) do przechowywania i synchronizowania tego typu danych.
Właściwości metadanych pliku
Pełna lista właściwości metadanych w pliku jest dostępna poniżej:
Nieruchomość | Rodzaj | 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 wysyłaniu, NIE przy updateMetadata |
cacheControl | strunowy | TAK |
contentDisposition | strunowy | TAK |
contentEncoding | strunowy | TAK |
contentLanguage | strunowy | TAK |
contentType | strunowy | TAK |
customMetadata | Obiekt zawierający odwzorowania string->string | TAK |
Przesyłanie, pobieranie i aktualizowanie plików jest ważne, ale równie ważna jest możliwość ich usuwania. Nauczmy się, jak usuwać pliki z Cloud Storage.