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 לקטגוריית ברירת המחדל. במהלך הפיתוח, כדאי להגדיר את הכללים לגישה ציבורית.
לוחצים על סיום.
עכשיו אפשר לראות את הקטגוריה בכרטיסייה Cloud Storage Files במסוף Firebase. פורמט ברירת המחדל של שם הקטגוריה הוא PROJECT_ID.firebasestorage.app
הגדרה של גישה ציבורית
Cloud Storage for Firebase מספק שפת כללים הצהרתית שמאפשרת להגדיר את המבנה של הנתונים, את אופן יצירת האינדקס שלהם ואת הזמן שבו אפשר לקרוא את הנתונים ולכתוב אותם. כברירת מחדל, הגישה לקריאה ולכתיבה של Cloud Storage מוגבלת, כך שרק משתמשים מאומתים יכולים לקרוא או לכתוב נתונים. כדי להתחיל בלי להגדיר את Authentication, אפשר להגדיר את הכללים לגישה ציבורית.
הפעולה הזו תגרום לכך שכל אחד יוכל לפתוח את Cloud Storage, גם אנשים שלא משתמשים באפליקציה שלכם. לכן, חשוב להגביל שוב את Cloud Storage כשמגדירים אימות.
הוספת Cloud Storage JS SDK ואתחול Cloud Storage
צריך לציין את Cloud Storage שם הקטגוריה כשמפעילים את JavaScript SDK.
אפשר למצוא את שם הקטגוריה של Cloud Storage בכרטיסייה Cloud Storage קבצים במסוף Firebase. בהתאם למועד שבו יצרתם את קטגוריית ברירת המחדל, שם הקטגוריה יהיה באחד מהפורמטים הבאים:
(קטגוריית ברירת מחדל שנוצרה ב-30 באוקטובר 2024 או אחריPROJECT_ID.firebasestorage.app
30 באוקטובר 2024 ) (קטגוריית ברירת מחדל שנוצרה לפני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 classes)
- שימוש בCloud Storage buckets עם כמה משתמשים מאומתים באותה אפליקציה
מקרה השימוש הראשון מתאים במיוחד אם יש לכם משתמשים בכל העולם ואתם רוצים לאחסן את הנתונים שלהם בקרבתם. לדוגמה, אתם יכולים ליצור מאגרי מידע בארה"ב, באירופה ובאסיה כדי לאחסן נתונים של משתמשים באזורים האלה ולצמצם את זמן האחזור.
תרחיש השימוש השני שימושי אם יש לכם נתונים עם דפוסי גישה שונים. לדוגמה: אפשר להגדיר קטגוריה רב-אזורית או אזורית לאחסון תמונות או תוכן אחר שמתבצעת אליו גישה לעיתים קרובות, וקטגוריה מסוג Nearline או Coldline לאחסון גיבויים של משתמשים או תוכן אחר שמתבצעת אליו גישה לעיתים רחוקות.
בכל אחד מהתרחישים האלה, כדאי להשתמש בכמה דליים של Cloud Storage.
מקרה השימוש השלישי שימושי אם אתם מפתחים אפליקציה, כמו Google Drive, שמאפשרת למשתמשים להיות מחוברים לכמה חשבונות (למשל, חשבון אישי וחשבון לצורכי עבודה). אתם יכולים להשתמש במופע מותאם אישית של Firebase App כדי לאמת כל חשבון נוסף.
שימוש בכמה קטגוריות 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 לוח הבקרה 'שימוש' כדי לקבל מידע מפורט יותר על השימוש.