مقدمة إلى واجهة برمجة تطبيقات Admin Cloud Storage

يقوم Cloud Storage for Firebase بتخزين بياناتك في مجموعة Google Cloud Storage - وهو حل لتخزين الكائنات بحجم إكسابايت مع توفر عالي وتكرار عالمي. تتيح لك Firebase Admin SDK الوصول مباشرةً إلى مجموعات التخزين السحابي الخاصة بك من البيئات المميزة. ثم يمكنك استخدام Google Cloud Storage APIs لمعالجة الكائنات المخزنة في المجموعات.

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

استخدم دلو افتراضي

يمكنك تحديد اسم الحاوية الافتراضي عند تهيئة Admin 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.

بايثون

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 عند استخدام Firebase Admin SDK. تمت بالفعل مصادقة مراجع الحاوية التي تم إرجاعها بواسطة Admin SDK باستخدام بيانات الاعتماد المستخدمة لتهيئة تطبيق Firebase.

استخدم الدلاء المخصصة

إذا كنت تريد استخدام مجموعة تخزين سحابية بخلاف الحاوية الافتراضية المذكورة أعلاه، أو استخدام عدة مجموعات تخزين سحابية في تطبيق واحد، فيمكنك استرداد مرجع إلى حاوية مخصصة كما هو موضح أدناه:

Node.js

const bucket = getStorage().bucket('my-custom-bucket');

جافا

Bucket bucket = StorageClient.getInstance().bucket("my-custom-bucket");

بايثون

bucket = storage.bucket('my-custom-bucket')

يذهب

 bucket, err := client.Bucket("my-custom-bucket")

استخدم تطبيق Firebase مخصصًا

إذا كنت تقوم بإنشاء تطبيق أكثر تعقيدًا يتفاعل مع تطبيقات Firebase متعددة ، فيمكنك الوصول إلى مجموعات التخزين السحابي المرتبطة بتطبيق Firebase محدد على النحو التالي:

Node.js

const bucket = getStorage(customApp).bucket();

جافا

Bucket bucket = StorageClient.getInstance(customApp).bucket();

بايثون

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. مراجع الحاوية التي يتم إرجاعها بواسطة Admin SDK هي كائنات محددة في هذه المكتبات. راجع الوثائق ومراجع واجهة برمجة التطبيقات (API) الخاصة بمكتبات عملاء Google Cloud Storage لمعرفة كيفية استخدام مراجع المجموعة التي تم إرجاعها في حالات الاستخدام مثل تحميل الملفات وتنزيلها .