از ابرداده فایل با 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 ) برای ذخیره و همگام سازی این نوع داده ها استفاده کنید.

ویژگی های فراداده فایل

لیست کاملی از ویژگی های ابرداده در یک فایل در زیر موجود است:

ویژگی تایپ کنید قابل نوشتن
bucket رشته خیر
generation رشته خیر
metageneration رشته خیر
fullPath رشته خیر
name رشته خیر
size Int64 خیر
timeCreated تاریخ خیر
updated تاریخ خیر
md5Hash رشته آره
cacheControl رشته آره
contentDisposition رشته آره
contentEncoding رشته آره
contentLanguage رشته آره
contentType رشته آره
customMetadata [رشته: رشته] آره

آپلود، دانلود و به‌روزرسانی فایل‌ها مهم است، اما حذف آنها نیز مهم است. بیایید یاد بگیریم که چگونه فایل ها را از فضای ذخیره سازی ابری حذف کنیم .