Używanie metadanych pliku w Cloud Storage w Flutter

Po przesłaniu pliku do referencji Cloud Storage możesz też uzyskać i aktualizować metadane pliku, np. wyświetlać lub aktualizować typ treści. Pliki mogą też przechowywać niestandardowe pary klucz-wartość z dodatkowymi metadanymi pliku.

Pobieranie metadanych pliku

Metadane pliku zawierają typowe właściwości, takie jak name, size, contentType (często nazywany typem MIME), a także najpopularniejsze, takie jak contentDisposition i timeCreated. Metadane te mogą być pobrano z odwołania Cloud Storage za pomocą metodę 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'

Aktualizowanie metadanych pliku

Metadane pliku możesz zaktualizować w dowolnym momencie po zakończeniu przesyłania, poprzez za pomocą metody updateMetadata(). Zapoznaj się z pełna lista. można zaktualizować. Aktualizowane są tylko właściwości określone w metadanych, wszystkie pozostałe pozostaną 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ąć dostępne do zapisu właściwości metadanych, przekazując parametr null:

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

Obsługa błędów

Błędy mogą być spowodowane przez różne metadanych, w tym pliku, który nie istnieje, lub użytkownika, który nie ma uprawnień; aby uzyskać dostęp do wybranego pliku. Więcej informacji o błędach znajdziesz w Obsługa błędów w dokumentacji.

Niestandardowe metadane

Metadane niestandardowe możesz określić za pomocą parametru customMetadata funkcji Konstruktor 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

W przypadku każdego pliku możesz przechowywać dane dotyczące konkretnej aplikacji w niestandardowych metadanych, ale zalecamy korzystanie z bazy danych (takiej jak Bazy danych czasu rzeczywistego Firebase) do przechowywania i synchronizowania tego typu i skalowalnych danych.

Właściwości metadanych pliku

Pełna lista właściwości metadanych pliku jest dostępna poniżej:

Właściwość Typ Do ustalenia?
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, aby je usunąć. Dowiedz się, jak usuwać pliki z Cloud Storage.