بعد تحميل ملف إلى مرجع Cloud Storage، يمكنك أيضًا الحصول على وتعديل البيانات الوصفية للملف، مثلاً لتعديل نوع المحتوى Files من Google أيضًا تخزين أزواج المفتاح/القيمة المخصصة مع بيانات وصفية إضافية للملفات.
الحصول على البيانات الوصفية للملف
تحتوي البيانات الوصفية للملفات على سمات شائعة، مثل 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 } });
التعامل مع الأخطاء
هناك عدد من الأسباب التي قد تؤدي إلى حدوث أخطاء عند الحصول على metadata أو تعديله، بما في ذلك عدم توفّر الملف أو عدم توفّر إذن للمستخدم بالوصول إلى الملف المطلوب. يمكن العثور على مزيد من المعلومات حول الأخطاء في التعامل مع الأخطاء قسم المستندات.
البيانات الوصفية المخصّصة
يمكنك تحديد البيانات الوصفية المخصّصة على أنّها 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