پساز بارگذاری فایل در مرجع Cloud Storage، میتوانید فراداده فایل را نیز دریافت و بهروز کنید، برای مثال برای بهروزرسانی نوع محتوا. فایلها همچنین میتوانند جفتهای کلید/مقدار سفارشی را با فرادادههای فایل اضافی ذخیره کنند.
دریافت فراداده فایل
فراداده فایل حاوی ویژگیهای رایجی مثل name، size، و
contentType (که اغلب نوع MIME نامیده میشود) و همچنین برخی ویژگیهای کمتر
رایج مثل contentDisposition و timeCreated است. این فراداده را میتوان
از مرجع Cloud Storage بااستفاده از
روش metadataWithCompletion: بازیابی کرد.
Swift
// Create reference to the file whose metadata we want to retrieve let forestRef = storageRef.child("images/forest.jpg") // Get metadata properties do { let metadata = try await forestRef.getMetadata() } catch { // ... }
Objective-C
// Create reference to the file whose metadata we want to retrieve FIRStorageReference *forestRef = [storageRef child:@"images/forest.jpg"]; // Get metadata properties [forestRef metadataWithCompletion:^(FIRStorageMetadata *metadata, NSError *error) { if (error != nil) { // Uh-oh, an error occurred! } else { // Metadata now contains the metadata for 'images/forest.jpg' } }];
بهروزرسانی فراداده فایل
هرزمان که بخواهید میتوانید فراداده فایل را پساز تکمیل بارگذاری فایل بااستفاده از روش updateMetadata:withCompletion: بهروز کنید. برای اطلاعات بیشتر درباره اینکه کدام ویژگیها را میتوان بهروز کرد، به فهرست کامل مراجعه کنید. فقط ویژگیهای مشخصشده در فراداده بهروز میشوند،
بقیه بدون تغییر باقی میمانند.
Swift
// Create reference to the file whose metadata we want to change let forestRef = storageRef.child("images/forest.jpg") // Create file metadata to update let newMetadata = StorageMetadata() newMetadata.cacheControl = "public,max-age=300" newMetadata.contentType = "image/jpeg" // Update metadata properties do { let updatedMetadata = try await forestRef.updateMetadata(newMetadata) } catch { // ... }
Objective-C
// Create reference to the file whose metadata we want to change FIRStorageReference *forestRef = [storageRef child:@"images/forest.jpg"]; // Create file metadata to update FIRStorageMetadata *newMetadata = [[FIRStorageMetadata alloc] init]; newMetadata.cacheControl = @"public,max-age=300"; newMetadata.contentType = @"image/jpeg"; // Update metadata properties [forestRef updateMetadata:newMetadata completion:^(FIRStorageMetadata *metadata, NSError *error){ if (error != nil) { // Uh-oh, an error occurred! } else { // Updated metadata for 'images/forest.jpg' is returned } }];
میتوانید ویژگیهای فراداده قابلنوشتن را با تنظیم آنها روی nil حذف کنید:
Objective-C
FIRStorageMetadata *newMetadata = [[FIRStorageMetadata alloc] init]; newMetadata.contentType = nil; // Delete the metadata property [forestRef updateMetadata:newMetadata completion:^(FIRStorageMetadata *metadata, NSError *error){ if (error != nil) { // Uh-oh, an error occurred! } else { // metadata.contentType should be nil } }];
Swift
let newMetadata = StorageMetadata() newMetadata.contentType = nil do { // Delete the metadata property let updatedMetadata = try await forestRef.updateMetadata(newMetadata) } catch { // ... }
مدیریت کردن خطاها
دلایل متعددی برای بروز خطا هنگام دریافت یا بهروزرسانی فراداده وجود دارد، ازجمله عدم وجود فایل یا نداشتن اجازه دسترسی کاربر به فایل موردنظر. اطلاعات بیشتر درباره خطاها را میتوانید در بخش رسیدگی به خطاها در اسناد پیدا کنید.
فراداده سفارشی
میتوانید فراداده سفارشی را بهعنوان NSDictionary حاوی ویژگیهای NSString مشخص کنید.
Swift
let metadata = [ "customMetadata": [ "location": "Yosemite, CA, USA", "activity": "Hiking" ] ]
Objective-C
NSDictionary *metadata = @{ @"customMetadata": @{ @"location": @"Yosemite, CA, USA", @"activity": @"Hiking" } };
میتوانید دادههای مختص برنامه را برای هر فایل در فراداده سفارشی ذخیره کنید، اما اکیداً توصیه میکنیم از پایگاه داده (مثل Firebase Realtime Database) برای ذخیره و همگامسازی این نوع دادهها استفاده کنید.
ویژگیهای فراداده فایل
فهرست کامل ویژگیهای فراداده در فایل در زیر دردسترس است:
| دارایی | نوع | قابل نوشتن |
|---|---|---|
bucket |
تار | نه |
generation |
تار | نه |
metageneration |
تار | نه |
fullPath |
تار | نه |
name |
تار | نه |
size |
Int64 | نه |
timeCreated |
تاریخ | نه |
updated |
تاریخ | نه |
md5Hash |
تار | بله |
cacheControl |
تار | بله |
contentDisposition |
تار | بله |
contentEncoding |
تار | بله |
contentLanguage |
تار | بله |
contentType |
تار | بله |
customMetadata |
[رشته: رشته] | بله |
بارگذاری، بارگیری، و بهروزرسانی فایلها مهم است، اما توانایی برداشتن آنها نیز مهم است. بیایید با نحوه حذف فایلها از Cloud Storage آشنا شویم.