Używanie metadanych pliku w Cloud Storage dla Unity

Po przesłaniu pliku do referencji Cloud Storage możesz też pobierać i aktualizować jego metadane, na przykład aby zaktualizować typ treści. Pliki mogą też przechowywać niestandardowe pary klucz-wartość z dodatkowymi metadanymi pliku.

Pobieranie metadanych pliku

Metadane plików zawierają popularne właściwości, takie jak Name, SizeBytes i ContentType (często określane jako typ MIME), a także niektóre mniej typowe właściwości, np. ContentDisposition i CreationTimeMillis. Te metadane można pobrać z odniesienia 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

Metadane pliku możesz zaktualizować w dowolnym momencie po zakończeniu przesyłania pliku. Aby to zrobić, użyj metody UpdateMetadataAsync, która pobiera 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 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ąć dostępne do zapisu właściwości metadanych, 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 mogą występować z różnych powodów, np. gdy plik nie istnieje lub użytkownik nie ma uprawnień dostępu do niego. Więcej informacji o błędach znajdziesz w sekcji Obsługa błędów w tej dokumentacji.

Niestandardowe metadane

Metadane niestandardowe możesz określić za pomocą atrybutu Dictionary<string, string>.

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

// UpdateMetadataAsync

W przypadku każdego pliku możesz przechowywać w niestandardowych metadanych dane specyficzne dla aplikacji, ale zdecydowanie zalecamy korzystanie z bazy danych (takiej jak Baza danych czasu rzeczywistego Firebase) 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:

Właściwość Typ Można modyfikować w funkcji MetadataChange
Bucket string NO
Generation string NO
MetadataGeneration string NO
Path string NO
Name string NO
SizeBytes long NO
CreationTimeMillis long NO
UpdatedTimeMillis long NO
CacheControl string TAK
ContentDisposition string TAK
ContentEncoding string TAK
ContentLanguage string TAK
ContentType string TAK
DownloadUrl Uri NO
DownloadUrls IList<Uri> NO
CustomMetadataKeys IEnumerable<string> TAK

Następne kroki

Przesyłanie, pobieranie i aktualizowanie plików jest bardzo ważne, ale trzeba też móc je usuwać. Dowiedz się, jak usuwać pliki z Cloud Storage.