שימוש במטא-נתונים של קבצים ב-Cloud Storage ל-Unity

אחרי שמעלים קובץ להפניה של 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.