مقدمه‌ای بر Admin Cloud Storage API

Cloud Storage for Firebase داده‌های شما را در یک Google Cloud Storage bucket ذخیره می‌کند — یک راهکار ذخیره‌سازی شیء در مقیاس اگزابایت با دسترسی بالا و افزونگی جهانی. Firebase Admin SDK به شما امکان می‌دهد مستقیماً از محیط‌های ممتاز به دسته‌های Cloud Storage خود دسترسی داشته باشید. سپس می‌توانید از Google Cloud Storage API برای دستکاری اشیای ذخیره‌شده در دسته‌ها استفاده کنید.

Admin SDK همچنین به شما امکان می‌دهد نشانی‌های وب قابل‌هم‌رسانی ایجاد کنید تا کاربران بتوانند اشیاء را در دسته‌هایتان بارگیری کنند.

مطمئن شوید پروژه Firebase شما در طرح قیمت‌گذاری Blaze پرداخت به اندازه استفاده باشد که پیش‌نیاز استفاده از Cloud Storage for Firebase است. اگر تازه با Firebase و Google Cloud آشنا شده‌اید، بررسی کنید که آیا واجدشرایط اعتبار دوره آزمایشی رایگان ۳۰۰ دلاری هستید یا نه.

استفاده از سطل پیش‌فرض

هنگام مقداردهی اولیه Admin SDK، می‌توانید نام پیش‌فرض دسته را مشخص کنید. سپس می‌توانید مرجع اصالت‌سنجی‌شده‌ای را برای این سطل بازیابی کنید.

نام سطل نباید حاوی gs:// یا هر پیشوند پروتکل دیگری باشد. برای مثال، اگر نشانی وب دسته نمایش‌داده‌شده در Firebase کنسول gs://PROJECT_ID.firebasestorage.app است، رشته PROJECT_ID.firebasestorage.app را به 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 https://cloud.google.com/java/docs/reference/google-cloud-storage/latest/com.google.cloud.storage.Bucket
// 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': 'PROJECT_ID.firebasestorage.app'
})

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 خود استفاده کنید. توجه داشته باشید که هنگام استفاده از Firebase Admin SDK، نیازی به اصالت‌سنجی کتابخانه‌های Google Cloud Storage ندارید. ارجاع‌های سطل که توسط Admin SDK برگردانده می‌شوند، قبلاً با اطلاعات اعتباری که برای مقداردهی اولیه برنامه Firebase شما استفاده شده‌اند، اصالت‌سنجی شده‌اند.

استفاده از دسته‌های سفارشی

اگر می‌خواهید از سطل Cloud Storage دیگری غیراز سطل پیش‌فرض که قبلاً در این راهنما شرح داده شد استفاده کنید، یا از چند سطل Cloud Storage در یک برنامه استفاده کنید، می‌توانید مرجعی را برای سطل سفارشی بازیابی کنید:

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 تعامل دارد، می‌توانید به دسته‌های Cloud Storage مرتبط با برنامه 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")

دریافت نشانی وب بارگیری هم‌رسانی‌شدنی

می‌توانید از Admin SDK برای تولید نشانی وب بارگیری بدون انقضا برای فایل‌های ذخیره‌شده در دسته‌هایتان استفاده کنید. هرکسی این نشانی وب را داشته باشد می‌تواند برای همیشه به این فایل دسترسی داشته باشد.

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 کتابخانه کارخواه

کیت‌های توسعه نرم‌افزار Firebase Admin به Google Cloud Storage کتابخانه‌های کارخواه وابسته هستند تا دسترسی به Cloud Storage را فراهم کنند. ارجاع‌های سطل برگردانده‌شده توسط «کیت توسعه نرم‌افزار سرپرست» اشیایی هستند که در این کتابخانه‌ها تعریف شده‌اند. برای آشنایی با نحوه استفاده از ارجاع‌های برگردانده‌شده به دسته در موارد استفاده‌ای مثل بارگذاری و بارگیری فایل، به اسناد و ارجاع‌های API کتابخانه‌های کارخواه Google Cloud Storage مراجعه کنید.