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