بعد تحميل ملف إلى مرجع Cloud Storage، يمكنك أيضًا الحصول على البيانات الوصفية للملف وتعديلها، على سبيل المثال لتعديل نوع المحتوى. يمكن للملفات أيضًا تخزين أزواج المفاتيح والقيم المخصّصة مع بيانات وصفية إضافية للملفات.
الحصول على البيانات الوصفية للملف
تحتوي البيانات الوصفية للملف على سمات شائعة مثل 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 Realtime Database) لتخزين هذا النوع من البيانات ومزامنته.
خصائص البيانات الوصفية للملف
تتوفّر أدناه قائمة كاملة بسمات البيانات الوصفية في ملف:
| الموقع | النوع | Modifyable in 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"