搭配 Unity 專用 Cloud Storage 使用檔案中繼資料

將檔案上傳至 Cloud Storage 參考資料後,也能取得下列權限: 並更新檔案中繼資料,例如更新內容類型。檔案 也可以儲存自訂鍵/值組合,以及額外的檔案中繼資料。

取得檔案中繼資料

檔案中繼資料包含常用屬性,例如 NameSizeBytesContentType (通常稱為 MIME 類型) ContentDispositionCreationTimeMillis等較不常見的項目。這個 中繼資料可使用 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
    }
});

更新檔案中繼資料

檔案上傳完成後,你隨時可透過以下方式更新檔案中繼資料: 使用採用 MetadataChange 物件的 UpdateMetadataAsync 方法。 請參閱完整清單,進一步瞭解哪些 屬性可以更新只有中繼資料中指定的屬性如下 其他則保持不變。

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

如要刪除可寫入的中繼資料屬性,請傳送空白字串:

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

處理錯誤

發生錯誤的可能原因有很多, 中繼資料,包括不存在的檔案,或使用者沒有權限 來存取所需檔案如要進一步瞭解錯誤,請前往 處理錯誤 一節。

自訂中繼資料

您可以將自訂中繼資料指定為 Dictionary<string, string>

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

// UpdateMetadataAsync

您可以在自訂中繼資料內儲存每個檔案的應用程式專屬資料,但 建議您使用資料庫 (例如 Firebase 即時資料庫),儲存並同步處理這種類型的 資料。

檔案中繼資料屬性

完整的檔案中繼資料屬性清單請見下方:

屬性 類型 可在 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 執行