بعد تحميل ملف إلى مرجع Cloud Storage، يمكنك أيضًا الحصول على البيانات الوصفية للملف وتعديلها، مثلاً لتعديل نوع المحتوى. يمكن لتطبيق Files أيضًا تخزين أزواج المفتاح/القيمة المخصصة مع بيانات وصفية إضافية للملفات.
الحصول على البيانات الوصفية للملف
تحتوي البيانات الوصفية للملفات على سمات شائعة، مثل Name
وSizeBytes
وContentType
(غالبًا ما يُشار إليها باسم نوع MIME)، بالإضافة إلى بعض السمات
الأقل شيوعًا، مثل ContentDisposition
وCreationTimeMillis
. ويمكن استرداد هذه
البيانات الوصفية من مرجع Cloud Storage باستخدام
طريقة GetMetadataAsync
.
// Create reference to the file whose metadata we want to retrieve StorageReference forestRef = storageRef.Child("images/forest.jpg"); // Get metadata properties forestRef.GetMetadataAsync().ContinueWithOnMainThread(task => { if (!task.IsFaulted && !task.IsCanceled) { StorageMetadata meta = task.Result; // do stuff with meta } });
تعديل البيانات الوصفية للملف
يمكنك تعديل البيانات الوصفية للملف في أي وقت بعد اكتمال تحميل الملف، وذلك باستخدام طريقة UpdateMetadataAsync
التي تستخدم عنصر MetadataChange
.
راجِع القائمة الكاملة لمزيد من المعلومات عن الخصائص التي يمكن تعديلها. يتم فقط تحديث الخصائص المحددة في
البيانات الوصفية، وتترك جميع الخصائص الأخرى بدون تعديل.
// Create reference to the file whose metadata we want to change StorageReference forestRef = storageRef.Child("images/forest.jpg"); // Create file metadata to update var newMetadata = new MetadataChange(); newMetadata.CacheControl = "public,max-age=300"; newMetadata.ContentType = "image/jpeg"; // Update metadata properties forestRef.UpdateMetadataAsync(newMetadata).ContinueWithOnMainThread(task => { if (!task.IsFaulted && !task.IsCanceled) { // access the updated meta data StorageMetadata meta = task.Result; } });
يمكنك حذف خصائص البيانات الوصفية القابلة للكتابة من خلال تمرير السلسلة الفارغة:
// Create file metadata to update var newMetadata = new MetadataChange(); newMetadata.ContentType = ""; // Update metadata properties forestRef.UpdateMetadataAsync(newMetadata).ContinueWithOnMainThread(task => { if (!task.IsFaulted && !task.IsCanceled) { StorageMetadata meta = task.Result; // meta.ContentType should be an empty string now } });
التعامل مع الأخطاء
قد تحدث أخطاء عند الحصول على البيانات الوصفية أو تعديلها لأسباب عديدة، منها عدم توفّر الملف أو عدم منح المستخدم الإذن بالوصول إلى الملف المطلوب. يمكن العثور على مزيد من المعلومات حول الأخطاء في قسم معالجة الأخطاء في المستندات.
البيانات الوصفية المخصّصة
يمكنك تحديد البيانات الوصفية المخصّصة على أنّها Dictionary<string, string>
.
var newMetadata = new MetadataChange { CustomMetadata = new Dictionary<string, string> { {"location", "Yosemite, CA, USA"}, {"activity", "Hiking"} } }; // UpdateMetadataAsync
يمكنك تخزين بيانات خاصة بالتطبيق لكل ملف في البيانات الوصفية المخصّصة، ولكن ننصحك بشدة باستخدام قاعدة بيانات (مثل قاعدة بيانات Firebase في الوقت الفعلي) لتخزين هذا النوع من البيانات ومزامنتها.
خصائص البيانات الوصفية للملفات
تتوفر قائمة كاملة بسمات البيانات الوصفية في ملف أدناه:
الموقع | Type | قابلة للتعديل في MetadataChange |
---|---|---|
Bucket |
string |
لا |
Generation |
string |
لا |
MetadataGeneration |
string |
لا |
Path |
string |
لا |
Name |
string |
لا |
SizeBytes |
long |
لا |
CreationTimeMillis |
long |
لا |
UpdatedTimeMillis |
long |
لا |
CacheControl |
string |
نعم |
ContentDisposition |
string |
نعم |
ContentEncoding |
string |
نعم |
ContentLanguage |
string |
نعم |
ContentType |
string |
نعم |
DownloadUrl |
Uri |
لا |
DownloadUrls |
IList<Uri> |
لا |
CustomMetadataKeys |
IEnumerable<string> |
نعم |
الخطوات التالية
من المهم تحميل الملفات وتنزيلها وتحديثها، وكذلك القدرة على إزالتها. لنتعرّف على كيفية حذف الملفات من Cloud Storage.