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

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

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