Korzystaj z metadanych plików w Cloud Storage na platformie Flutter

Po przesłaniu pliku do Cloud Storage możesz także pobrać i zaktualizować metadane pliku, na przykład aby wyświetlić lub zaktualizować typ 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() .

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

// Get metadata properties
final metadata = await forestRef.getMetadata();

// Metadata now contains the metadata for 'images/forest.jpg'

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.

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

// Create file metadata to update
final newMetadata = SettableMetadata(
  cacheControl: "public,max-age=300",
  contentType: "image/jpeg",
);

// Update metadata properties
final metadata = await forestRef.updateMetadata(newMetadata);

// Updated metadata for 'images/forest.jpg' is returned

Możesz usunąć zapisywalne właściwości metadanych, przekazując null :

// Delete the cacheControl property
final newMetadata = SettableMetadata(cacheControl: null);
final metadata = await forestRef.updateMetadata(newMetadata);

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 za pomocą parametru customMetadata konstruktora SettableMetadata :

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

// Create file metadata to update
final newCustomMetadata = SettableMetadata(
  customMetadata: {
    "location": "Yosemite, CA, USA",
    "activity": "Hiking",
  },
);

// Update metadata properties
final metadata = await forestRef.updateMetadata(newCustomMetadata);

// Updated metadata for 'images/forest.jpg' is returned

Możesz przechowywać dane specyficzne dla aplikacji dla każdego pliku w niestandardowych metadanych, 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 Ustawialny?
bucket String NIE
generation String NIE
metageneration String NIE
metadataGeneration String NIE
fullPath String NIE
name String NIE
size int NIE
timeCreated DateTime NIE
updated DateTime NIE
md5Hash String NIE
cacheControl String Tak
contentDisposition String Tak
contentEncoding String Tak
contentLanguage String Tak
contentType String Tak
customMetadata Map<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.