پساز بارگذاری فایل در مرجع Cloud Storage، میتوانید فراداده فایل را نیز دریافت و بهروز کنید، برای مثال برای بهروزرسانی نوع محتوا. فایلها همچنین میتوانند جفتهای کلید/مقدار سفارشی را با فرادادههای فایل اضافی ذخیره کنند.
دریافت فراداده فایل
فراداده فایل حاوی ویژگیهای رایجی مثل Name، SizeBytes، و
ContentType (که اغلب نوع MIME نامیده میشود) و همچنین برخی ویژگیهای
کمتر رایج مثل ContentDisposition و CreationTimeMillis است. این فراداده را میتوان از مرجع Cloud Storage بااستفاده از روش 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
میتوانید دادههای مختص برنامه را برای هر فایل در فراداده سفارشی ذخیره کنید، اما اکیداً توصیه میکنیم از پایگاه داده (مثل 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 آشنا شویم.