Utiliser des métadonnées de fichiers avec Cloud Storage pour Unity

Après avoir importé un fichier dans la référence Cloud Storage, vous pouvez également obtenir et mettre à jour les métadonnées du fichier, par exemple pour modifier le type de contenu. Les fichiers peuvent également stocker des paires clé/valeur personnalisées avec des métadonnées de fichier supplémentaires.

Obtenir les métadonnées du fichier

Les métadonnées de fichier contiennent des propriétés courantes telles que Name, SizeBytes et ContentType (souvent appelées type MIME), en plus de certaines propriétés moins courantes comme ContentDisposition et CreationTimeMillis. Ces métadonnées peuvent être récupérées à partir d'une référence Cloud Storage à l'aide de la méthode 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
    }
});

Mettre à jour les métadonnées des fichiers

Vous pouvez mettre à jour les métadonnées du fichier à tout moment une fois l'importation du fichier terminée en utilisant la méthode UpdateMetadataAsync, qui accepte un objet MetadataChange. Pour en savoir plus sur les propriétés pouvant être mises à jour, consultez la liste complète. Seules les propriétés spécifiées dans les métadonnées sont mises à jour. Toutes les autres ne sont pas modifiées.

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

Vous pouvez supprimer des propriétés de métadonnées encodables en transmettant la chaîne vide :

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

Gérer les erreurs

Plusieurs raisons peuvent expliquer l'apparition d'erreurs lors de l'obtention ou de la mise à jour de métadonnées, y compris si le fichier n'existe pas ou si l'utilisateur n'est pas autorisé à accéder au fichier souhaité. Pour en savoir plus sur les erreurs, consultez la section Gérer les erreurs de la documentation.

Métadonnées personnalisées

Vous pouvez spécifier des métadonnées personnalisées sous la forme d'un Dictionary<string, string>.

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

// UpdateMetadataAsync

Vous pouvez stocker des données spécifiques à l'application pour chaque fichier dans des métadonnées personnalisées, mais nous vous recommandons vivement d'utiliser une base de données (telle que Firebase Realtime Database) pour stocker et synchroniser ce type de données.

Propriétés des métadonnées de fichier

Vous trouverez ci-dessous la liste complète des propriétés de métadonnées d'un fichier :

Propriété Type Modifiable dans MétadonnéesChange
Bucket string NON
Generation string NO
MetadataGeneration string NO
Path string NO
Name string NO
SizeBytes long NO
CreationTimeMillis long NO
UpdatedTimeMillis long NON
CacheControl string OUI
ContentDisposition string OUI
ContentEncoding string OUI
ContentLanguage string OUI
ContentType string OUI
DownloadUrl Uri NON
DownloadUrls IList<Uri> NON
CustomMetadataKeys IEnumerable<string> OUI

Étapes suivantes

Importer, télécharger et mettre à jour des fichiers est important, mais il est également important de pouvoir les supprimer. Découvrons comment supprimer des fichiers de Cloud Storage.