אחרי העלאת קובץ להפניה Cloud Storage, אפשר גם לקבל או לעדכן את המטא-נתונים של הקובץ, למשל כדי לעדכן את סוג התוכן. הקבצים הוא יכול גם לאחסן צמדי מפתח/ערך מותאמים אישית עם מטא-נתונים נוספים של קבצים.
אחזור מטא-נתונים של קבצים
המטא-נתונים של הקבצים מכילים מאפיינים נפוצים כמו name
, size
ו-
contentType
(נקרא בדרך כלל סוג MIME), בנוסף לכמה פחות
נפוצים כמו contentDisposition
ו-timeCreated
. המטא-נתונים האלה יכולים להיות
אוחזר מהפניה של Cloud Storage באמצעות
באמצעות ה-method getMetadata()
. הפונקציה getMetadata()
מחזירה Promise
שמכיל את הפונקציה
מטא-נתונים מלאים, או שגיאה אם Promise
נדחה.
Web
import { getStorage, ref, getMetadata } from "firebase/storage"; // Create a reference to the file whose metadata we want to retrieve const storage = getStorage(); const forestRef = ref(storage, 'images/forest.jpg'); // Get metadata properties getMetadata(forestRef) .then((metadata) => { // Metadata now contains the metadata for 'images/forest.jpg' }) .catch((error) => { // Uh-oh, an error occurred! });
Web
// Create a reference to the file whose metadata we want to retrieve var forestRef = storageRef.child('images/forest.jpg'); // Get metadata properties forestRef.getMetadata() .then((metadata) => { // Metadata now contains the metadata for 'images/forest.jpg' }) .catch((error) => { // Uh-oh, an error occurred! });
עדכון מטא-נתונים של קבצים
אפשר לעדכן את המטא-נתונים של הקבצים בכל שלב אחרי שמסתיימת העלאת הקובץ, עד
באמצעות השיטה updateMetadata()
. עיינו ב
הרשימה המלאה כאן תוכלו למצוא מידע נוסף על הנכסים
ניתן לעדכון. רק המאפיינים שצוינו במטא-נתונים מתעדכנים,
כל השאר נשארו ללא שינויים. הפונקציה updateMetadata()
מחזירה Promise
שמכיל את המטא-נתונים המלאים, או שגיאה אם Promise
דוחה.
Web
import { getStorage, ref, updateMetadata } from "firebase/storage"; // Create a reference to the file whose metadata we want to change const storage = getStorage(); const forestRef = ref(storage, 'images/forest.jpg'); // Create file metadata to update const newMetadata = { cacheControl: 'public,max-age=300', contentType: 'image/jpeg' }; // Update metadata properties updateMetadata(forestRef, newMetadata) .then((metadata) => { // Updated metadata for 'images/forest.jpg' is returned in the Promise }).catch((error) => { // Uh-oh, an error occurred! });
Web
// Create a reference to the file whose metadata we want to change var forestRef = storageRef.child('images/forest.jpg'); // Create file metadata to update var newMetadata = { cacheControl: 'public,max-age=300', contentType: 'image/jpeg' }; // Update metadata properties forestRef.updateMetadata(newMetadata) .then((metadata) => { // Updated metadata for 'images/forest.jpg' is returned in the Promise }).catch((error) => { // Uh-oh, an error occurred! });
כדי למחוק מאפיין מטא-נתונים, מגדירים אותו כ-null
:
Web
import { getStorage, ref, updateMetadata } from "firebase/storage"; const storage = getStorage(); const forestRef = ref(storage, 'images/forest.jpg'); // Create file metadata with property to delete const deleteMetadata = { contentType: null }; // Delete the metadata property updateMetadata(forestRef, deleteMetadata) .then((metadata) => { // metadata.contentType should be null }).catch((error) => { // Uh-oh, an error occurred! });
Web
// Create file metadata with property to delete var deleteMetadata = { contentType: null }; // Delete the metadata property forestRef.updateMetadata(deleteMetadata) .then((metadata) => { // metadata.contentType should be null }).catch((error) => { // Uh-oh, an error occurred! });
טיפול בשגיאות
יכולות להיות כמה סיבות לשגיאות בקבלה או בעדכון מטא-נתונים, כולל הקובץ לא קיים או שלמשתמש אין הרשאה כדי לגשת לקובץ הרצוי. מידע נוסף על שגיאות זמין בקטע טיפול בשגיאות במסמכים.
מטא-נתונים בהתאמה אישית
אפשר לציין מטא-נתונים בהתאמה אישית כאובייקט שמכיל מאפיינים של String
.
Web
const metadata = { customMetadata: { 'location': 'Yosemite, CA, USA', 'activity': 'Hiking' } };
Web
var metadata = { customMetadata: { 'location': 'Yosemite, CA, USA', 'activity': 'Hiking' } };
אפשר להשתמש במטא-נתונים מותאמים אישית כדי לאחסן נתונים נוספים ספציפיים לאפליקציה עבור כל אחד מהם אבל מומלץ מאוד להשתמש במסד נתונים (כמו Firebase Realtime Database) לאחסון ולסנכרון של נתונים מהסוג הזה.
מאפייני מטא-נתונים של קבצים
רשימה מלאה של מאפייני המטא-נתונים בקובץ זמינה בהמשך:
נכס | סוג | לכתיבה |
---|---|---|
bucket |
מחרוזת | לא |
generation |
מחרוזת | לא |
metageneration |
מחרוזת | לא |
fullPath |
מחרוזת | לא |
name |
מחרוזת | לא |
size |
מספר | לא |
timeCreated |
מחרוזת | לא |
updated |
מחרוזת | לא |
md5Hash |
מחרוזת | כן בהעלאה, לא ב-updateMetadata |
cacheControl |
מחרוזת | כן |
contentDisposition |
מחרוזת | כן |
contentEncoding |
מחרוזת | כן |
contentLanguage |
מחרוזת | כן |
contentType |
מחרוזת | כן |
customMetadata |
אובייקט שמכיל מיפויים של מחרוזת->מחרוזות | כן |
חשוב להעלות, להוריד ולעדכן קבצים, אבל חשוב גם שתוכלו להסיר אותם. כאן נלמד איך למחוק קבצים מ-Cloud Storage.