مقدّمة عن 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 إلى 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.

يمكنك استخدام مراجع الحِزم التي تعرضها "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');

جافا

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