استخدم بيانات تعريف الملف مع Cloud Storage for Unity

بعد تحميل ملف إلى مرجع التخزين السحابي، يمكنك أيضًا الحصول على البيانات التعريفية للملف وتحديثها، على سبيل المثال لتحديث نوع المحتوى. يمكن للملفات أيضًا تخزين أزواج المفاتيح/القيم المخصصة مع بيانات تعريف الملف الإضافية.

الحصول على البيانات الوصفية للملف

تحتوي البيانات التعريفية للملف على خصائص شائعة مثل Name و SizeBytes و ContentType (يُشار إليها غالبًا بنوع MIME) بالإضافة إلى بعض الخصائص الأقل شيوعًا مثل ContentDisposition و CreationTimeMillis . يمكن استرداد بيانات التعريف هذه من مرجع التخزين السحابي باستخدام طريقة 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> نعم

الخطوات التالية

من المهم تحميل الملفات وتنزيلها وتحديثها، ولكن من المهم أيضًا القدرة على إزالتها. دعونا نتعلم كيفية حذف الملفات من التخزين السحابي.