مقدّمة عن Admin Cloud Storage API

يخزّن Cloud Storage for Firebase بياناتك في حزمة Google Cloud Storage، وهي عبارة عن حلّ لتخزين العناصر بحجم إكسابايت وذي معدّل مرتفع ومعدّل تكرار على مستوى العالم. تتيح لك SDK لمشرف Firebase الوصول مباشرةً إلى حِزم Cloud Storage من بيئات مميّزة. بعد ذلك، يمكنك استخدام واجهات برمجة تطبيقات Google Cloud Storage لمعالجة العناصر المخزنة في الحِزم.

تتيح لك "SDK للمشرف" أيضًا إنشاء عناوين URL قابلة للمشاركة، ليتمكّن المستخدمون من تنزيل العناصر في الحِزم.

استخدام حزمة تلقائية

يمكنك تحديد اسم حزمة تلقائي عند إعداد حزمة تطوير البرامج (SDK) للمشرف. يمكنك بعد ذلك استرداد مرجع مصادق عليه لهذه الحزمة. يجب ألا يحتوي اسم الحزمة على gs:// أو أي بادئات بروتوكول أخرى. على سبيل المثال، إذا كان عنوان URL للحزمة المعروض في وحدة تحكُّم Firebase هو gs://bucket-name.appspot.com، مرِّر السلسلة bucket-name.appspot.com إلى حزمة تطوير البرامج (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.

يمكنك استخدام مراجع الحِزم التي تعرضها "SDK للمشرف" مع مكتبات عملاء Google Cloud Storage الرسمية لتحميل المحتوى وتنزيله وتعديله في الحِزم المرتبطة بمشاريع Firebase. تجدر الإشارة إلى أنّه لا حاجة إلى مصادقة مكتبات Google Cloud Storage عند استخدام "SDK لمشرف Firebase". سبق أن تمت مصادقة مراجع الحزمة التي تعرضها "حزمة تطوير البرامج (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 قابل للمشاركة للتنزيل

يمكنك استخدام 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 لمعرفة كيفية استخدام مراجع الحزمة المعروضة في حالات استخدام مثل تحميل وتنزيل.