אחרי שמעלים קובץ להפניה ב-Cloud Storage, אפשר גם לקבל ולעדכן את המטא-נתונים של הקובץ, למשל כדי לראות או לעדכן את סוג התוכן. בקבצים אפשר גם לאחסן צמדי מפתח/ערך בהתאמה אישית עם מטא-נתונים נוספים של הקובץ.
אחזור מטא-נתונים של קובץ
המטא-נתונים של הקובץ מכילים מאפיינים נפוצים כמו name, size ו-contentType (שנקרא לעיתים קרובות סוג MIME), בנוסף למאפיינים פחות נפוצים כמו contentDisposition ו-timeCreated. אפשר לאחזר את המטא-נתונים האלה מהפניה ל-Cloud Storage באמצעות השיטה getMetadata().
// Create reference to the file whose metadata we want to retrieve
final forestRef = storageRef.child("images/forest.jpg");
// Get metadata properties
final metadata = await forestRef.getMetadata();
// Metadata now contains the metadata for 'images/forest.jpg'
עדכון המטא-נתונים של הקובץ
אפשר לעדכן את המטא-נתונים של הקובץ בכל שלב אחרי שההעלאה של הקובץ מסתיימת באמצעות השיטה updateMetadata(). למידע נוסף על המאפיינים שאפשר לעדכן, אפשר לעיין ברשימה המלאה. רק המאפיינים שצוינו במטא-נתונים מתעדכנים,
כל השאר נשארים ללא שינוי.
// Create reference to the file whose metadata we want to change
final forestRef = storageRef.child("images/forest.jpg");
// Create file metadata to update
final newMetadata = SettableMetadata(
  cacheControl: "public,max-age=300",
  contentType: "image/jpeg",
);
// Update metadata properties
final metadata = await forestRef.updateMetadata(newMetadata);
// Updated metadata for 'images/forest.jpg' is returned
כדי למחוק מאפייני מטא-נתונים שניתן לכתוב בהם, מעבירים את הערך null:
// Delete the cacheControl property
final newMetadata = SettableMetadata(cacheControl: null);
final metadata = await forestRef.updateMetadata(newMetadata);
טיפול בשגיאות
יכולות להיות כמה סיבות לשגיאות בקבלת מטא-נתונים או בעדכון שלהם, כולל קובץ שלא קיים או משתמש שאין לו הרשאה לגשת לקובץ הרצוי. מידע נוסף על שגיאות זמין בקטע Handle Errors במסמכים.
מטא-נתונים בהתאמה אישית
אפשר לציין מטא-נתונים מותאמים אישית באמצעות הפרמטר customMetadata של ה-constructor SettableMetadata:
// Create reference to the file whose metadata we want to change
final forestRef = storageRef.child("images/forest.jpg");
// Create file metadata to update
final newCustomMetadata = SettableMetadata(
  customMetadata: {
    "location": "Yosemite, CA, USA",
    "activity": "Hiking",
  },
);
// Update metadata properties
final metadata = await forestRef.updateMetadata(newCustomMetadata);
// Updated metadata for 'images/forest.jpg' is returned
אפשר לאחסן נתונים ספציפיים לאפליקציה לכל קובץ במטא-נתונים בהתאמה אישית, אבל מומלץ מאוד להשתמש במסד נתונים (כמו Firebase Realtime Database) כדי לאחסן ולסנכרן את סוג הנתונים הזה.
מאפייני המטא-נתונים של הקובץ
בהמשך מופיעה רשימה מלאה של מאפייני המטא-נתונים בקובץ:
| נכס | סוג | ניתן להגדרה? | 
|---|---|---|
| bucket | String | לא | 
| generation | String | לא | 
| metageneration | String | לא | 
| metadataGeneration | String | לא | 
| fullPath | String | לא | 
| name | String | לא | 
| size | int | לא | 
| timeCreated | DateTime | לא | 
| updated | DateTime | לא | 
| md5Hash | String | לא | 
| cacheControl | String | כן | 
| contentDisposition | String | כן | 
| contentEncoding | String | כן | 
| contentLanguage | String | כן | 
| contentType | String | כן | 
| customMetadata | Map<String, String> | כן | 
העלאה, הורדה ועדכון של קבצים הם חשובים, אבל חשוב גם להיות מסוגלים להסיר אותם. איך מוחקים קבצים מ-Cloud Storage