تخزِّن Cloud Storage for Firebase بياناتك في حزمة Google Cloud Storage، وهي حلّ تخزين كائنات على مستوى إكسابايت يتسم بمدى توفّر مرتفع ومتعدّد احتياطيًا على مستوى عالمي. تسمح لك حزمة تطوير البرامج (SDK) الخاصة بالمشرفين في Firebase بالوصول مباشرةً إلى Cloud Storage حِزمك من البيئات المميّزة. يمكنك بعد ذلك استخدام Google Cloud Storage واجهات برمجة التطبيقات لمعالجة العناصر المخزّنة في الحِزم.
تتيح لك Admin SDK أيضًا إنشاء عناوين URL قابلة للمشاركة حتى يتمكّن المستخدمون من تنزيل العناصر في حِزمك.
استخدام حزمة تلقائية
يمكنك تحديد اسم حزمة تلقائي عند إعداد حزمة Admin SDK. بعد ذلك، يمكنك استرداد مرجع تمّت مصادقته إلى هذا الحِزمة.
يجب ألّا يحتوي اسم الحزمة على gs://
أو أي بادئات بروتوكول أخرى.
على سبيل المثال، إذا كان عنوان URL للحزمة المعروض في
وحدة تحكّم Firebase هو gs://PROJECT_ID.firebasestorage.app
، نقْل السلسلة
PROJECT_ID.firebasestorage.app
إلى حزمة 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.
جافا
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.
انتقال
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 عند استخدام حزمة تطوير البرامج (SDK) للمشرف في Firebase. سبق أن تمّت مصادقة مراجع الحزمة التي تعرضها حزمة Admin SDK باستخدام بيانات الاعتماد المستخدَمة لإعداد تطبيقك على Firebase.
استخدام حِزم مخصّصة
إذا كنت تريد استخدام حزمة Cloud Storage غير الحزمة التلقائية الموضَّحة سابقًا في هذا الدليل، أو استخدام حِزم Cloud Storage متعددة في تطبيق واحد، يمكنك استرداد إشارة إلى حزمة مخصّصة:
Node.js
const bucket = getStorage().bucket('my-custom-bucket');
جافا
Bucket bucket = StorageClient.getInstance().bucket("my-custom-bucket");
Python
bucket = storage.bucket('my-custom-bucket')
انتقال
bucket, err := client.Bucket("my-custom-bucket")
استخدام تطبيق Firebase مخصّص
إذا كنت بصدد إنشاء تطبيق أكثر تعقيدًا يتفاعل مع تطبيقات Firebase متعددة، يمكنك الوصول إلى حِزم Cloud Storage المرتبطة بتطبيق معيّن على Firebase على النحو التالي:
Node.js
const bucket = getStorage(customApp).bucket();
جافا
Bucket bucket = StorageClient.getInstance(customApp).bucket();
Python
bucket = storage.bucket(app=custom_app)
انتقال
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. إنّ مراجع الحِزم التي تعرضها "حزمة تطوير البرامج (SDK) للمشرف" هي عناصر محدّدة في هذه المكتبات. يمكنك الرجوع إلى المستندات ومقاييس واجهة برمجة التطبيقات لمكتبات عملاء Google Cloud Storage للتعرّف على كيفية استخدام مراجع الحِزم التي يتم عرضها في حالات الاستخدام، مثل تحميل الملفات وتنزيلها.