Używaj metadanych plików w Cloud Storage for Unity

Po przesłaniu pliku do Cloud Storage możesz także pobrać i 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ą typowe właściwości, takie jak Name , SizeBytes i ContentType (często określane jako typ MIME), a także mniej popularne, takie jak ContentDisposition i CreationTimeMillis . Te metadane można pobrać z odwołania do Cloud Storage przy użyciu metody GetMetadataAsync .

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

// Get metadata properties
forestRef.GetMetadataAsync().ContinueWithOnMainThread(task => {
    if (!task.IsFaulted && !task.IsCanceled) {
        StorageMetadata meta = task.Result;
        // do stuff with meta
    }
});

Zaktualizuj metadane pliku

Metadane pliku można zaktualizować w dowolnym momencie po zakończeniu przekazywania pliku przy użyciu metody UpdateMetadataAsync , która przyjmuje obiekt MetadataChange . 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
StorageReference forestRef = storageRef.Child("images/forest.jpg");

// Create file metadata to update
var newMetadata = new MetadataChange();
newMetadata.CacheControl = "public,max-age=300";
newMetadata.ContentType = "image/jpeg";

// Update metadata properties
forestRef.UpdateMetadataAsync(newMetadata).ContinueWithOnMainThread(task => {
    if (!task.IsFaulted && !task.IsCanceled) {
        // access the updated meta data
        StorageMetadata meta = task.Result;
    }
});

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

// Create file metadata to update
var newMetadata = new MetadataChange();
newMetadata.ContentType = "";

// Update metadata properties
forestRef.UpdateMetadataAsync(newMetadata).ContinueWithOnMainThread(task => {
    if (!task.IsFaulted && !task.IsCanceled) {
        StorageMetadata meta = task.Result;
        // meta.ContentType should be an empty string now
    }
});

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 Dictionary<string, string> .

var newMetadata = new MetadataChange {
    CustomMetadata = new Dictionary<string, string> {
        {"location", "Yosemite, CA, USA"},
        {"activity", "Hiking"}
    }
};

// UpdateMetadataAsync

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 Możliwość modyfikacji w MetadataChange
Bucket string NIE
Generation string NIE
MetadataGeneration string NIE
Path string NIE
Name string NIE
SizeBytes long NIE
CreationTimeMillis long NIE
UpdatedTimeMillis long NIE
CacheControl string TAK
ContentDisposition string TAK
ContentEncoding string TAK
ContentLanguage string TAK
ContentType string TAK
DownloadUrl Uri NIE
DownloadUrls IList<Uri> NIE
CustomMetadataKeys IEnumerable<string> TAK

Następne kroki

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.