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

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

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

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