אחרי שמעלים קובץ לCloud Storage הפניה, אפשר גם לקבל או לעדכן את המטא-נתונים של הקובץ, למשל כדי לעדכן את סוג התוכן. בנוסף, בקבצים אפשר לאחסן צמדי מפתח/ערך בהתאמה אישית עם מטא-נתונים נוספים של הקובץ.
אחזור מטא-נתונים של קובץ
המטא-נתונים של הקובץ מכילים מאפיינים נפוצים כמו name
, size
ו-contentType
(שנקרא לעיתים קרובות סוג MIME), בנוסף למאפיינים פחות נפוצים כמו contentDisposition
ו-timeCreated
. אפשר לאחזר את המטא-נתונים האלה מהפניה Cloud Storage באמצעות השיטה 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! });
טיפול בשגיאות
יכולות להיות כמה סיבות לשגיאות שמתרחשות כשמקבלים או מעדכנים מטא-נתונים, כולל המקרים שבהם הקובץ לא קיים או שאין למשתמש הרשאה לגשת לקובץ הרצוי. מידע נוסף על שגיאות זמין בקטע Handle Errors במסמכים.
מטא-נתונים בהתאמה אישית
אפשר לציין מטא-נתונים בהתאמה אישית כאובייקט שמכיל מאפייני 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 |
מחרוזת | YES בהעלאה, NO ב-updateMetadata |
cacheControl |
מחרוזת | כן |
contentDisposition |
מחרוזת | כן |
contentEncoding |
מחרוזת | כן |
contentLanguage |
מחרוזת | כן |
contentType |
מחרוזת | כן |
customMetadata |
אובייקט שמכיל מיפויים של מחרוזת->מחרוזת | כן |
העלאה, הורדה ועדכון של קבצים הם חשובים, אבל חשוב גם להיות מסוגלים להסיר אותם. במאמר הזה נסביר איך למחוק קבצים מ-Cloud Storage.