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

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

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

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

يمكنك تحديد اسم حزمة تلقائي عند إعداد "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.

جافا

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.

انتقال

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