بعد تحميل ملف إلى مرجع 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.