از ابرداده فایل با Cloud Storage در پلتفرم های اپل استفاده کنید

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

فراداده فایل را دریافت کنید

فراداده فایل حاوی ویژگی‌های رایجی مانند name ، size ، و contentType (که اغلب به عنوان نوع MIME شناخته می‌شود) علاوه بر برخی موارد کمتر رایج مانند contentDisposition و timeCreated . این ابرداده را می‌توان با استفاده از روش metadataWithCompletion: از یک مرجع Cloud Storage بازیابی کرد.

سویفت

// 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 {
  // ...
}
    

هدف-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: می‌توانید در هر زمانی پس از اتمام آپلود فایل، فراداده فایل را به‌روزرسانی کنید. برای اطلاعات بیشتر در مورد ویژگی هایی که می توانند به روز شوند به لیست کامل مراجعه کنید. فقط ویژگی‌های مشخص‌شده در فراداده به‌روزرسانی می‌شوند، بقیه خصوصیات بدون تغییر باقی می‌مانند.

سویفت

// 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 {
  // ...
}
    

هدف-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 حذف کنید:

هدف-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
  }
}];

سویفت

let newMetadata = StorageMetadata()
newMetadata.contentType = nil

do {
  // Delete the metadata property
  let updatedMetadata = try await forestRef.updateMetadata(newMetadata)
} catch {
  // ...
}

رسیدگی به خطاها

دلایل متعددی وجود دارد که ممکن است هنگام دریافت یا به‌روزرسانی فراداده، از جمله فایل موجود نباشد یا کاربر اجازه دسترسی به فایل مورد نظر را نداشته باشد، خطا رخ دهد. اطلاعات بیشتر در مورد خطاها را می توانید در بخش Handle Errors در اسناد پیدا کنید.

فراداده سفارشی

شما می توانید متادیتای سفارشی را به عنوان یک NSDictionary حاوی ویژگی های NSString مشخص کنید.

سویفت

let metadata = [
  "customMetadata": [
    "location": "Yosemite, CA, USA",
    "activity": "Hiking"
  ]
]
    

هدف-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 حذف کنیم.