Używanie metadanych pliku w Cloud Storage dla Unity

Po przesłaniu pliku do Cloud Storage możesz również wyświetlić i zaktualizować metadane pliku, na przykład aby zmienić typ treści. Pliki mogą też przechowywać niestandardowe pary klucz-wartość z dodatkowymi metadanymi pliku.

Pobieranie metadanych

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 typowe, takie jak ContentDisposition i CreationTimeMillis. Te metadane można pobrać z odwołania Cloud Storage za pomocą 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
    }
});

Aktualizowanie metadanych pliku

Po zakończeniu przesyłania pliku możesz zaktualizować metadane pliku w dowolnym momencie, używając metody UpdateMetadataAsync, która przyjmuje obiekt MetadataChange. Więcej informacji o tym, jakie usługi można aktualizować, znajdziesz na pełnej liście. Zaktualizowane są tylko właściwości określone w metadanych, a wszystkie inne pozostają bez zmian.

// 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;
    }
});

Aby usunąć właściwości meta danych, które można zapisać, możesz przekazać pusty ciąg znaków:

// 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

Błędy podczas pobierania lub aktualizowania metadanych mogą wystąpić z różnych powodów, na przykład z powodu braku pliku lub braku uprawnień użytkownika do dostępu do odpowiedniego pliku. Więcej informacji o błędach znajdziesz w sekcji Przetwarzanie błędów w dokumentacji.

Niestandardowe metadane

Metadane niestandardowe możesz podać jako Dictionary<string, string>.

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

// UpdateMetadataAsync

Dane dotyczące poszczególnych aplikacji możesz przechowywać w metadanych niestandardowych, ale zdecydowanie zalecamy używanie bazy danych (np. Firebase Realtime Database) do przechowywania i synchronizowania tego typu danych.

Właściwości metadanych pliku

Poniżej znajdziesz pełną listę właściwości metadanych pliku:

Właściwość Typ Zmiana w sekcji 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żne jest ich usuwanie. Dowiedz się, jak usuwać pliki z Cloud Storage.