از ابرداده فایل با Cloud Storage for Unity استفاده کنید

پس از آپلود فایل در مرجع Cloud Storage ، می‌توانید فراداده‌های فایل را نیز دریافت و به‌روزرسانی کنید، برای مثال، نوع محتوا را به‌روزرسانی کنید. فایل‌ها همچنین می‌توانند جفت‌های کلید/مقدار سفارشی را با فراداده‌های فایل اضافی ذخیره کنند.

دریافت متادیتای فایل

فراداده‌های فایل شامل ویژگی‌های رایجی مانند Name ، SizeBytes و ContentType (که اغلب به عنوان نوع MIME شناخته می‌شوند) علاوه بر برخی ویژگی‌های کمتر رایج مانند ContentDisposition و CreationTimeMillis هستند. این فراداده‌ها را می‌توان با استفاده از متد GetMetadataAsync از یک مرجع Cloud Storage بازیابی کرد.

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

شما می‌توانید داده‌های مختص برنامه را برای هر فایل در متادیتای سفارشی ذخیره کنید، اما ما اکیداً توصیه می‌کنیم از یک پایگاه داده (مانند 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 حذف کنیم.