Cloud Storage for Firebase מאפשרת להעלות ולשתף תוכן שנוצר על ידי משתמשים, כמו תמונות וסרטונים, וכך להוסיף תוכן של מדיה עשירה לאפליקציות. הנתונים מאוחסנים בקטגוריה Google Cloud Storage – פתרון לאחסון אובייקטים בקנה מידה של אקסה-בייט עם זמינות גבוהה ויתירות גלובלית. Cloud Storage for Firebase מאפשר להעלות את הקבצים האלה באופן מאובטח ישירות ממכשירים ניידים ומדפדפני אינטרנט, תוך התמודדות קלה עם רשתות לא יציבות.
לפני שמתחילים
אם עדיין לא עשיתם זאת, מומלץ לקרוא את מדריך למתחילים בנושא אפליקציות אינטרנט. בין המקורות האלה:
יצירת פרויקט Firebase.
רישום אפליקציית האינטרנט בפרויקט וחיבור האפליקציה ל-Firebase על ידי הוספת Firebase JS SDK ואובייקט התצורה של Firebase לאפליקציה.
מוודאים שהפרויקט ב-Firebase מוגדר לתוכנית התמחור 'Blaze' בתשלום לפי שימוש. אם אתם משתמשים חדשים ב-Firebase וב-Google Cloud, כדאי לבדוק אם אתם זכאים לזיכוי בסך 300$.
יצירת קטגוריית Cloud Storage שמוגדרת כברירת מחדל
בחלונית הניווט של מסוף Firebase, בוחרים באפשרות Storage.
אם הפרויקט שלכם עדיין לא מוגדר לתוכנית התמחור של Blaze בתשלום לפי שימוש, תתבקשו לשדרג את הפרויקט.
לוחצים על תחילת העבודה.
בוחרים מיקום לקטגוריית ברירת המחדל.
בקטגוריות ב-
, ב-US-CENTRAL1
וב-US-EAST1
אפשר ליהנות מהתוכנית 'תמיד בחינם' ב-Google Cloud Storage. בקטגוריות בכל המיקומים האחרים חל התמחור והשימוש של Google Cloud Storage.US-WEST1
אם רוצים, אפשר ליצור כמה קטגוריות, לכל אחת מהן מיקום משלה.
מגדירים את Firebase Security Rules לקטגוריית ברירת המחדל. במהלך הפיתוח, כדאי להגדיר כללים לגישה ציבורית.
לוחצים על סיום.
עכשיו אפשר לראות את הקטגוריה בכרטיסייה Files של Cloud Storage במסוף Firebase. פורמט ברירת המחדל של שם הקטגוריה הוא PROJECT_ID.firebasestorage.app
הגדרת גישה ציבורית
Cloud Storage for Firebase מספקת שפת כללים מצהירה שמאפשרת לכם להגדיר את המבנה של הנתונים, את האופן שבו הם יתווספו לאינדקס ואת הזמנים שבהם תוכלו לקרוא מהנתונים ולכתוב אליהם. כברירת מחדל, הגישה לקריאה ולכתיבה ב-Cloud Storage מוגבלת, כך שרק משתמשים מאומתים יכולים לקרוא או לכתוב נתונים. כדי להתחיל בלי להגדיר את Authentication, אפשר להגדיר כללים לגישה ציבורית.
הפעולה הזו גורמת לכך ש-Cloud Storage יהיה פתוח לכולם, גם לאנשים שלא משתמשים באפליקציה. לכן חשוב להגביל שוב את Cloud Storage כשמגדירים אימות.
צריך להוסיף את Cloud Storage JS SDK ולהפעיל את Cloud Storage
צריך לציין את שם הקטגוריה Cloud Storage בזמן האתחול של ה-SDK ל-JavaScript.
שם הקטגוריה של Cloud Storage מופיע בכרטיסייה Cloud Storage Files שבמסוף Firebase. בהתאם למועד היצירה של קטגוריית ברירת המחדל, שם הקטגוריה יהיה באחד מהפורמטים הבאים:
(קטגוריית ברירת המחדל שנוצרה ב-30 באוקטובר 2024 או לאחר מכן)PROJECT_ID.firebasestorage.app
(קטגוריית ברירת המחדל שנוצרה לפניPROJECT_ID.appspot.com
30 באוקטובר 2024 )
מפעילים את ה-SDK באמצעות קטע הקוד הבא:
Web
import { initializeApp } from "firebase/app"; import { getStorage } from "firebase/storage"; // TODO: Replace the following with your app's Firebase project configuration // See: https://firebase.google.com/docs/web/learn-more#config-object const firebaseConfig = { // ... storageBucket: 'BUCKET_NAME' }; // Initialize Firebase const app = initializeApp(firebaseConfig); // Initialize Cloud Storage and get a reference to the service const storage = getStorage(app);
Web
import firebase from "firebase/app"; import "firebase/compat/storage"; // TODO: Replace the following with your app's Firebase project configuration // See: https://firebase.google.com/docs/web/learn-more#config-object const firebaseConfig = { // ... storageBucket: 'BUCKET_NAME' }; // Initialize Firebase firebase.initializeApp(firebaseConfig); // Initialize Cloud Storage and get a reference to the service const storage = firebase.storage();
עכשיו הכול מוכן ואפשר להתחיל להשתמש ב-Cloud Storage!
השלב הבא? איך יוצרים הפניה ל-Cloud Storage
הגדרה מתקדמת
יש כמה תרחישים לדוגמה שמחייבים הגדרה נוספת:
- שימוש בקטגוריות Cloud Storage במספר אזורים גיאוגרפיים
- שימוש בקטגוריות Cloud Storage בסוגי אחסון (storage class) שונים
- שימוש ב-Cloud Storage בקטגוריות עם מספר משתמשים מאומתים באותה האפליקציה
התרחיש לדוגמה הראשון מושלם אם יש לכם משתמשים ברחבי העולם ואתם רוצים לאחסן את הנתונים שלהם בסביבתם. לדוגמה, אפשר ליצור קטגוריות בארה"ב, באירופה ובאסיה כדי לאחסן נתונים של משתמשים באזורים האלה, וכך לצמצם את זמן האחזור.
התרחיש לדוגמה השני מועיל אם יש לכם נתונים עם דפוסי גישה שונים. לדוגמה: אפשר להגדיר קטגוריה בכמה אזורים או באזור מסוים לאחסון תמונות או תוכן אחר שנגיש לעיתים קרובות, וקטגוריה לטווח קצר או לטווח ארוך לאחסון גיבויים של משתמשים או תוכן אחר שנגיש לעיתים רחוקות.
בשני תרחישים לדוגמה האלה, כדאי להשתמש בכמה קטגוריות Cloud Storage.
התרחיש השלישי יכול להיות שימושי אם אתם מפתחים אפליקציה כמו Google Drive, שמאפשרת למשתמשים להיכנס לכמה חשבונות (למשל, חשבון אישי וחשבון לצורכי עבודה). ניתן להשתמש במכונה מותאמת אישית של אפליקציית Firebase כדי לאמת כל חשבון נוסף.
שימוש במספר קטגוריות של Cloud Storage
אם אתם רוצים להשתמש בקטגוריה Cloud Storage שאינה קטגוריית ברירת המחדל שמתוארת למעלה, או להשתמש בכמה קטגוריות Cloud Storage באפליקציה אחת, תוכלו ליצור מופע של firebase.storage
שמפנה לקטגוריה בהתאמה אישית:
Web
import { getApp } from "firebase/app"; import { getStorage } from "firebase/storage"; // Get a non-default Storage bucket const firebaseApp = getApp(); const storage = getStorage(firebaseApp, "gs://my-custom-bucket");
Web
// Get a non-default Storage bucket var storage = firebase.app().storage("gs://my-custom-bucket");
עבודה עם קטגוריות שיובאו
כשמייבאים קטגוריה קיימת של Cloud Storage ל-Firebase, צריך לתת ל-Firebase גישה לקבצים האלה באמצעות הכלי gsutil
, שנכלל ב-Google Cloud SDK:
gsutil -m acl ch -r -u service-PROJECT_NUMBER@gcp-sa-firebasestorage.iam.gserviceaccount.com gs://BUCKET_NAME
אפשר למצוא את מספר הפרויקט כפי שמתואר במבוא לפרויקטים ב-Firebase.
השינוי הזה לא משפיע על קטגוריות חדשות שנוצרו, כי אצלן אמצעי הבקרה של הגישה מוגדרים כברירת מחדל לאפשר גישה ל-Firebase. זהו אמצעי זמני, והוא יתבצע באופן אוטומטי בעתיד.
שימוש באפליקציית Firebase בהתאמה אישית
אם מפתחים אפליקציה מורכבת יותר באמצעות firebase.app.App
בהתאמה אישית, אפשר ליצור מכונה של firebase.storage.Storage
שאותחלה באמצעות אותה אפליקציה:
Web
import { getStorage } from "firebase/storage"; // Get the default bucket from a custom firebase.app.App const storage1 = getStorage(customApp); // Get a non-default bucket from a custom firebase.app.App const storage2 = getStorage(customApp, "gs://my-custom-bucket");
Web
// Get the default bucket from a custom firebase.app.App var storage = customApp.storage(); // Get a non-default bucket from a custom firebase.app.App var storage = customApp.storage("gs://my-custom-bucket");
השלבים הבאים
הכנה להשקת האפליקציה:
מפעילים את App Check כדי לוודא שרק האפליקציות שלכם יוכלו לגשת לקטגוריות האחסון.
צריך להגדיר התראות תקציב לפרויקט במסוף Google Cloud.
עוקבים אחרי מרכז הבקרה שימוש וחיוב במסוף Firebase כדי לקבל תמונה כללית של השימוש בפרויקט בכמה שירותי Firebase. אפשר גם להיכנס ללוח הבקרה Cloud Storage Usage כדי לקבל מידע מפורט יותר על השימוש.
כדאי לעיין ברשימת המשימות להשקת Firebase.