بعد تحميل ملف إلى مرجع Cloud Storage، يمكنك أيضًا الحصول على وتعديل البيانات الوصفية للملف، مثل تعديل نوع المحتوى Files من Google أيضًا تخزين أزواج المفتاح/القيمة المخصصة مع بيانات وصفية إضافية للملفات.
الحصول على البيانات الوصفية للملف
تحتوي البيانات الوصفية للملفات على سمات شائعة، مثل 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 |
إنت 64 | لا |
timeCreated |
التاريخ | لا |
updated |
التاريخ | لا |
md5Hash |
سلسلة | نعم |
cacheControl |
سلسلة | نعم |
contentDisposition |
سلسلة | نعم |
contentEncoding |
سلسلة | نعم |
contentLanguage |
سلسلة | نعم |
contentType |
سلسلة | نعم |
customMetadata |
[سلسلة: سلسلة] | نعم |
إن تحميل الملفات وتنزيلها وتحديثها أمر مهم، وكذلك القدرة على لإزالتها. لنتعلم كيفية حذف الملفات ابتداءً من Cloud Storage