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 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 {
     {"location", "Yosemite, CA, USA"},
     {"activity", "Hiking"}
  }
}

// UpdateMetadataAsync

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

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

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

プロパティ MetadataChange で変更可能
Bucket 文字列 いいえ
Generation 文字列 いいえ
MetadataGeneration 文字列 いいえ
Path 文字列 いいえ
Name 文字列 いいえ
SizeBytes 長い いいえ
CreationTimeMillis 長い いいえ
UpdatedTimeMillis 長い いいえ
CacheControl 文字列 はい
ContentDisposition 文字列 はい
ContentEncoding 文字列 はい
ContentLanguage 文字列 はい
ContentType 文字列 はい
DownloadUrl Uri いいえ
DownloadUrls IList いいえ
CustomMetadataKeys IEnumerable はい

次のステップ

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

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

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