אחרי העלאת קובץ לקובץ העזר ב-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);
טיפול בשגיאות
יש כמה סיבות לכך שעשויות להתרחש שגיאות בקבלה או בעדכון של מטא-נתונים, כולל העובדה שהקובץ לא קיים או שהמשתמש לא קיבל הרשאה לגשת לקובץ הרצוי. מידע נוסף על שגיאות זמין בקטע טיפול בשגיאות במסמכי העזרה.
מטא-נתונים בהתאמה אישית
אפשר לציין מטא-נתונים מותאמים אישית באמצעות הפרמטר 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.