將文件元數據與 Cloud Storage for Unity 結合使用

將文件上傳到 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
    }
});

更新文件元數據

您可以通過使用文件上傳完成之後的任何時間更新文件元數據UpdateMetadataAsync方法,這需要MetadataChange對象。請參閱完整清單上哪些屬性可以更新的更多信息。僅更新元數據中指定的屬性,所有其他屬性保持不變。

// 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

您可以存儲應用程序特定的數據為自定義元數據的每個文件,但我們強烈建議您使用的數據庫(如火力地堡實時數據庫)來存儲和同步這種類型的數據。

文件元數據屬性

下面提供了文件的元數據屬性的完整列表:

財產類型可在 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>是的

下一步

上傳、下載和更新文件很重要,但能夠刪除它們也很重要。讓我們來學習如何刪除文件從雲存儲。