پس از آپلود فایل در مرجع 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 } });
رسیدگی به خطاها
دلایل متعددی وجود دارد که ممکن است هنگام دریافت یا بهروزرسانی فراداده، از جمله فایل موجود نباشد یا کاربر اجازه دسترسی به فایل مورد نظر را نداشته باشد، خطا رخ دهد. اطلاعات بیشتر در مورد خطاها را می توانید در بخش Handle Errors در اسناد پیدا کنید.
فراداده سفارشی
میتوانید ابردادههای سفارشی را بهعنوان 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 حذف کنیم.