Cloud Storage for Firebase שומר את הנתונים בקטגוריה Google Cloud Storage – פתרון לאחסון אובייקטים בקנה מידה של אקסה-בייט עם זמינות גבוהה ויתירות גלובלית. ה-SDK של Firebase Admin מאפשר לכם לגשת ישירות לקטגוריות Cloud Storage בסביבות עם הרשאות. לאחר מכן תוכלו להשתמש בAPI של Google Cloud Storage כדי לבצע פעולות על האובייקטים שמאוחסנים בקטגוריות.
באמצעות Admin SDK אפשר גם ליצור כתובות URL שניתנות לשיתוף, כדי שמשתמשים יוכלו להוריד אובייקטים בקטגוריות.
שימוש בקטגוריית ברירת מחדל
אפשר לציין שם ברירת מחדל לקטגוריה כשמפעילים את Admin SDK. לאחר מכן תוכלו לאחזר הפניה מאומתת לקטגוריה הזו.
שם הקטגוריה לא יכול להכיל את gs://
או תחילית פרוטוקול אחרת.
לדוגמה, אם כתובת ה-URL של הקטגוריה שמוצגת במסוף Firebase היא gs://PROJECT_ID.firebasestorage.app
, מעבירים את המחרוזת PROJECT_ID.firebasestorage.app
ל-Admin SDK.
Node.js
const { initializeApp, cert } = require('firebase-admin/app');
const { getStorage } = require('firebase-admin/storage');
const serviceAccount = require('./path/to/serviceAccountKey.json');
initializeApp({
credential: cert(serviceAccount),
storageBucket: '<BUCKET_NAME>.appspot.com'
});
const bucket = getStorage().bucket();
// 'bucket' is an object defined in the @google-cloud/storage library.
// See https://googlecloudplatform.github.io/google-cloud-node/#/docs/storage/latest/storage/bucket
// for more details.
Java
FileInputStream serviceAccount = new FileInputStream("path/to/serviceAccountKey.json");
FirebaseOptions options = FirebaseOptions.builder()
.setCredentials(GoogleCredentials.fromStream(serviceAccount))
.setStorageBucket("<BUCKET_NAME>.appspot.com")
.build();
FirebaseApp.initializeApp(options);
Bucket bucket = StorageClient.getInstance().bucket();
// 'bucket' is an object defined in the google-cloud-storage Java library.
// See http://googlecloudplatform.github.io/google-cloud-java/latest/apidocs/com/google/cloud/storage/Bucket.html
// for more details.
Python
import firebase_admin
from firebase_admin import credentials
from firebase_admin import storage
cred = credentials.Certificate('path/to/serviceAccountKey.json')
firebase_admin.initialize_app(cred, {
'storageBucket': 'PROJECT_ID.firebasestorage.app'
})
bucket = storage.bucket()
# 'bucket' is an object defined in the google-cloud-storage Python library.
# See https://googlecloudplatform.github.io/google-cloud-python/latest/storage/buckets.html
# for more details.
Go
import (
"context"
"log"
firebase "firebase.google.com/go/v4"
"firebase.google.com/go/v4/auth"
"google.golang.org/api/option"
)
config := &firebase.Config{
StorageBucket: "<BUCKET_NAME>.appspot.com",
}
opt := option.WithCredentialsFile("path/to/serviceAccountKey.json")
app, err := firebase.NewApp(context.Background(), config, opt)
if err != nil {
log.Fatalln(err)
}
client, err := app.Storage(context.Background())
if err != nil {
log.Fatalln(err)
}
bucket, err := client.DefaultBucket()
if err != nil {
log.Fatalln(err)
}
// 'bucket' is an object defined in the cloud.google.com/go/storage package.
// See https://godoc.org/cloud.google.com/go/storage#BucketHandle
// for more details.
תוכלו להשתמש בהפניות לקטגוריות שהוחזרו על ידי ה-Admin SDK בשילוב עם ספריות הלקוח הרשמיות של Google Cloud Storage כדי להעלות, להוריד ולשנות תוכן בקטגוריות המשויכות לפרויקטים שלכם ב-Firebase. לתשומת ליבכם: אין צורך לאמת ספריות של Google Cloud Storage כשמשתמשים ב-Firebase Admin SDK. ההפניות לקטגוריות שהוחזרו על ידי Admin SDK כבר מאומתות באמצעות פרטי הכניסה שמשמשים להפעלת אפליקציית Firebase.
שימוש בקטגוריות בהתאמה אישית
אם אתם רוצים להשתמש בקטגוריה Cloud Storage שאינה קטגוריית ברירת המחדל שמתוארת למעלה במדריך הזה, או להשתמש במספר קטגוריות Cloud Storage באפליקציה אחת, תוכלו לאחזר הפניה לקטגוריה בהתאמה אישית:
Node.js
const bucket = getStorage().bucket('my-custom-bucket');
Java
Bucket bucket = StorageClient.getInstance().bucket("my-custom-bucket");
Python
bucket = storage.bucket('my-custom-bucket')
Go
bucket, err := client.Bucket("my-custom-bucket")
שימוש באפליקציית Firebase בהתאמה אישית
אם אתם מפתחים אפליקציה מורכבת יותר שמקיימת אינטראקציה עם מספר אפליקציות Firebase, תוכלו לגשת לקטגוריות Cloud Storage שמשויכות לאפליקציית Firebase ספציפית באופן הבא:
Node.js
const bucket = getStorage(customApp).bucket();
Java
Bucket bucket = StorageClient.getInstance(customApp).bucket();
Python
bucket = storage.bucket(app=custom_app)
Go
otherClient, err := otherApp.Storage(context.Background())
bucket, err := otherClient.Bucket("other-app-bucket")
קבלת כתובת URL להורדה שניתן לשתף
אפשר להשתמש ב-Admin SDK כדי ליצור כתובת URL להורדה ללא תאריך תפוגה של קבצים שמאוחסנים בקטגוריות שלכם. כל מי שיש לו את כתובת ה-URL הזו יכול לגשת לקובץ באופן קבוע.
Node.js
const { getStorage, getDownloadURL } = require('firebase-admin/storage');
const fileRef = getStorage().bucket('my-bucket').file('my-file');
const downloadURL= await getDownloadURL(fileRef);
Google Cloud Storage ספריות לקוח
ערכות ה-SDK לאדמינים ב-Firebase תלויות בספריות הלקוח של Google Cloud Storage כדי לספק גישה ל-Cloud Storage. הפניות לקטגוריות שמוחזרות על ידי Admin SDK הן אובייקטים שמוגדרים בספריות האלה. במסמכי העזרה ובחומר העזר בנושא ממשקי API של ספריות הלקוח של Google Cloud Storage מוסבר איך להשתמש בהפניות לקטגוריות שהוחזרו בתרחישי שימוש כמו העלאת והורדת קבצים.