پس از آپلود یک فایل در مرجع Cloud Storage، همچنین می توانید ابرداده فایل را دریافت و به روز کنید، به عنوان مثال برای مشاهده یا به روز رسانی نوع محتوا. فایلها همچنین میتوانند جفتهای کلید/مقدار سفارشی را با فراداده فایل اضافی ذخیره کنند.
فراداده فایل را دریافت کنید
فراداده فایل حاوی ویژگیهای رایجی مانند name
، size
، و contentType
(که اغلب به عنوان نوع MIME شناخته میشود) علاوه بر برخی موارد کمتر رایج مانند contentDisposition
و timeCreated
. این ابرداده را می توان با استفاده از متد getMetadata()
از یک مرجع ذخیره سازی ابری بازیابی کرد.
// Create reference to the file whose metadata we want to retrieve
final forestRef = storageRef.child("images/forest.jpg");
// Get metadata properties
final metadata = await forestRef.getMetadata();
// Metadata now contains the metadata for 'images/forest.jpg'
به روز رسانی متادیتا فایل
با استفاده از متد updateMetadata()
میتوانید پس از اتمام آپلود فایل، ابردادههای فایل را بهروزرسانی کنید. برای اطلاعات بیشتر در مورد ویژگی هایی که می توانند به روز شوند به لیست کامل مراجعه کنید. فقط ویژگیهای مشخصشده در فراداده بهروزرسانی میشوند، بقیه خصوصیات بدون تغییر باقی میمانند.
// Create reference to the file whose metadata we want to change
final forestRef = storageRef.child("images/forest.jpg");
// Create file metadata to update
final newMetadata = SettableMetadata(
cacheControl: "public,max-age=300",
contentType: "image/jpeg",
);
// Update metadata properties
final metadata = await forestRef.updateMetadata(newMetadata);
// Updated metadata for 'images/forest.jpg' is returned
شما می توانید ویژگی های ابرداده قابل نوشتن را با پاس کردن null
حذف کنید:
// Delete the cacheControl property
final newMetadata = SettableMetadata(cacheControl: null);
final metadata = await forestRef.updateMetadata(newMetadata);
رسیدگی به خطاها
دلایل متعددی وجود دارد که ممکن است هنگام دریافت یا بهروزرسانی فراداده، از جمله فایل موجود نباشد یا کاربر اجازه دسترسی به فایل مورد نظر را نداشته باشد، خطا رخ دهد. اطلاعات بیشتر در مورد خطاها را می توانید در بخش Handle Errors در اسناد پیدا کنید.
فراداده سفارشی
می توانید با استفاده از پارامتر customMetadata
سازنده SettableMetadata
، ابرداده سفارشی را مشخص کنید:
// Create reference to the file whose metadata we want to change
final forestRef = storageRef.child("images/forest.jpg");
// Create file metadata to update
final newCustomMetadata = SettableMetadata(
customMetadata: {
"location": "Yosemite, CA, USA",
"activity": "Hiking",
},
);
// Update metadata properties
final metadata = await forestRef.updateMetadata(newCustomMetadata);
// Updated metadata for 'images/forest.jpg' is returned
شما می توانید داده های خاص برنامه را برای هر فایل در ابرداده های سفارشی ذخیره کنید، اما ما به شدت توصیه می کنیم از یک پایگاه داده (مانند پایگاه داده بیدرنگ Firebase ) برای ذخیره و همگام سازی این نوع داده ها استفاده کنید.
ویژگی های فراداده فایل
لیست کاملی از ویژگی های ابرداده در یک فایل در زیر موجود است:
اموال | تایپ کنید | قابل تنظیم؟ |
---|---|---|
bucket | String | خیر |
generation | String | خیر |
metageneration | String | خیر |
metadataGeneration | String | خیر |
fullPath | String | خیر |
name | String | خیر |
size | int | خیر |
timeCreated | DateTime | خیر |
updated | DateTime | خیر |
md5Hash | String | خیر |
cacheControl | String | بله |
contentDisposition | String | بله |
contentEncoding | String | بله |
contentLanguage | String | بله |
contentType | String | بله |
customMetadata | Map<String, String> | بله |
آپلود، دانلود و بهروزرسانی فایلها مهم است، اما حذف آنها نیز مهم است. بیایید یاد بگیریم که چگونه فایل ها را از فضای ذخیره سازی ابری حذف کنیم .