מבוא ל-Admin Cloud Storage API

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://bucket-name.appspot.com, צריך להעביר את המחרוזת bucket-name.appspot.com על ה-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': '<BUCKET_NAME>.appspot.com'
})

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 Admin תלויות Google Cloud Storage ספריות לקוח כדי לספק גישת Cloud Storage. ההפניות לקטגוריה שהוחזרו על ידי Admin SDK הם אובייקטים שמוגדרים בספריות האלה. אפשר לעיין במסמכי התיעוד הפניות API של ספריות הלקוח ב-Google Cloud Storage כדי ללמוד איך משתמשים בהפניות לקטגוריות שמוחזרות בתרחישים לדוגמה, כמו upload וגם הורדה.