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

אחרי העלאת קובץ להפניה Cloud Storage, אפשר גם לקבל ולעדכן את המטא-נתונים של הקובץ, למשל כדי לעדכן את סוג התוכן. אפשר גם לאחסן בקובץ צמדי מפתח/ערך מותאמים אישית עם מטא-נתונים נוספים של הקובץ.

אחזור מטא-נתונים של קבצים

המטא-נתונים של קבצים מכילים מאפיינים נפוצים כמו Name, SizeBytes ו-ContentType (שנקראים בדרך כלל MIME type), בנוסף לכמה מאפיינים פחות נפוצים כמו ContentDisposition ו-CreationTimeMillis. אפשר לאחזר את המטא-נתונים מההפניה Cloud Storage באמצעות ה-method 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.