Cloud Storage for Unity でファイル メタデータを使用

ファイルを Cloud Storage 参照にアップロードした後で、ファイル メタデータを取得、更新して、コンテンツ タイプの更新などを行うことができます。ファイルには、追加のファイル メタデータを使用してカスタム Key-Value ペアを格納することもできます。

ファイル メタデータを取得する

ファイル メタデータには、NameSizeBytesContentType(多くの場合 MIME タイプと呼ばれます)などの一般的なプロパティに加え、ContentDispositionCreationTimeMillis などのあまり一般的でないプロパティも含まれています。このメタデータは、GetMetadataAsync メソッドを使用して Cloud Storage 参照から取得できます。

// Create reference to the file whose metadata we want to retrieve
Firebase.Storage.StorageReference forest_ref =
  storage_ref.Child("images/forest.jpg");

// Get metadata properties
forest_ref.GetMetadataAsync().ContinueWith((Task<StorageMetadata> task) => {
  if (!task.IsFaulted && !task.IsCanceled) {
    Firebase.Storage.StorageMetadata meta = task.Result;
    // do stuff with meta
  }
});

ファイル メタデータを更新する

ファイルのアップロードが完了したら、MetadataChange オブジェクトを取得する UpdateMetadataAsync メソッドを使用して、いつでもメタデータを更新できます。更新できるプロパティについて詳しくは、全一覧をご覧ください。メタデータに指定されているプロパティのみが更新され、それ以外のプロパティはすべて変更されずに残ります。

// Create reference to the file whose metadata we want to change
StorageReference forest_ref = storage_ref.child("images/forest.jpg");

// Create file metadata to update
var new_metadata = new Firebase.Storage.MetadataChange();
new_metadata.CacheControl = "public,max-age=300";
new_metadata.ContentType = "image/jpeg";

// Update metadata properties
forest_ref.UpdateMetadataAsync(new_metadata).ContinueWith(task => {
    if (!task.IsFaulted && !task.IsCanceled) {
        // access the updated meta data
        Firebase.Storage.StorageMetadata meta = task.Result;
    }
});

書き込み可能なメタデータ プロパティを削除するには、空の文字列を渡します。

// Create file metadata to update
var new_metadata = new Firebase.Storage.MetadataChange();
new_metadata.ContentType = "";

// Update metadata properties
forest_ref.UpdateMetadataAsync(new_metadata).ContinueWith(task => {
    if (!task.IsFaulted && !task.IsCanceled) {
        Firebase.Storage.StorageMetadata meta = task.Result;
        // meta.ContentType should be an empty string now
    }
});

エラーを処理する

メタデータの取得または更新時にエラーが発生する理由として、ファイルが存在しない、目的のファイルのアクセス権がユーザーにないなど、たくさんの理由が考えられます。エラーについて詳しくは、このドキュメントのエラーの処理のセクションをご覧ください。

カスタム メタデータ

カスタム メタデータは Dictionary<string, string> として指定できます。

var new_metadata = new Firebase.Storage.MetadataChange {
  CustomMetadata = new Dictionary<string, string> {
     {"location", "Yosemite, CA, USA"},
     {"activity", "Hiking"}
  }
}

// UpdateMetadataAsync

各ファイルについてアプリ固有のデータをカスタム メタデータに格納することは可能ですが、このタイプのデータを格納して同期するには、データベース(Firebase Realtime Database など)を使用することを強くおすすめします。

ファイル メタデータのプロパティ

ファイルに関するメタデータ プロパティの一覧は次のとおりです。

プロパティ MetadataChange で変更可能
Bucket string ×
Generation string ×
MetadataGeneration string ×
Path string ×
Name string ×
SizeBytes long ×
CreationTimeMillis long ×
UpdatedTimeMillis long ×
CacheControl string
ContentDisposition string
ContentEncoding string
ContentLanguage string
ContentType string
DownloadUrl Uri ×
DownloadUrls IList<Uri> ×
CustomMetadataKeys IEnumerable<string>

次のステップ

ファイルのアップロード、ダウンロード、更新は重要ですが、ファイルを削除できることも重要です。Cloud Storage からファイルを削除する方法を学習しましょう。

フィードバックを送信...

ご不明な点がありましたら、Google のサポートページをご覧ください。