Używanie metadanych pliku w Cloud Storage dla Unity

Po przesłaniu pliku do Cloud Storage możesz też pobrać i zaktualizować metadane pliku, np. aby zaktualizować 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, SizeBytes i ContentType (często nazywany typem MIME), a także mniej typowe, takie jak ContentDisposition i CreationTimeMillis. Te metadane można pobrać z Cloud Storage odwołania za pomocą GetMetadataAsync metody.

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

Metadane pliku możesz zaktualizować w dowolnym momencie po zakończeniu przesyłania pliku za pomocą metody UpdateMetadataAsync, która przyjmuje obiekt MetadataChange. Więcej informacji o tym, które właściwości można zaktualizować, znajdziesz na pełnej liście. Aktualizowane są tylko właściwości określone w metadanych, a wszystkie pozostałe 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;
    }
});

Właściwości metadanych, które można zapisywać, możesz usunąć, przekazując 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 wielu powodów, m.in. z powodu braku pliku lub braku uprawnień użytkownika do uzyskania dostępu do żądanego pliku. Więcej informacji o błędach znajdziesz w sekcji Obsługa błędów w dokumentacji.

Niestandardowe metadane

Niestandardowe metadane możesz określić jako Dictionary<string, string>.

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

// UpdateMetadataAsync

W niestandardowych metadanych możesz przechowywać dane specyficzne dla aplikacji dotyczące każdego pliku, 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 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żne jest możliwość ich usuwania. Dowiedzmy się, jak usuwać pliki z Cloud Storage.