بعد تحميل ملف إلى 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) لتخزين هذا النوع من البيانات ومزامنته.
سمات البيانات الوصفية للملف
في ما يلي قائمة كاملة بسمات البيانات الوصفية في الملف:
| الموقع | النوع | قابل للتعديل في 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.