Używanie metadanych pliku w Cloud Storage dla Unity

Po przesłaniu pliku do referencji Cloud Storage możesz też uzyskać i aktualizacji metadanych pliku, np. w celu zaktualizowania typu treści. Pliki umożliwia również przechowywanie niestandardowych par klucz-wartość z dodatkowymi metadanymi pliku.

Pobieranie metadanych pliku

Metadane pliku zawierają typowe właściwości, takie jak Name, SizeBytes, ContentType (często nazywanych typem MIME), a także mniej popularne, takie jak ContentDisposition i CreationTimeMillis. Ten metadane można pobrać z odwołania Cloud Storage za pomocą Metoda 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, poprzez za pomocą metody UpdateMetadataAsync, która pobiera obiekt MetadataChange. Więcej informacji znajdziesz na pełnej liście . Dozwolone są tylko właściwości określone w metadanych. zaktualizowane, wszystkie pozostałe pozostaną 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;
    }
});

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ą 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 sekcji dokumentów.

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ć 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 Można modyfikować w funkcji 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, aby je usunąć. Zobaczmy, jak usuwanie plików z Cloud Storage.