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

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

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

همچنین، مطمئن شوید که پروژه Firebase شما در طرح قیمت‌گذاری Blaze با پرداخت به ازای استفاده قرار دارد، که الزامی است که از اکتبر 2024 آغاز شده است (به سوالات متداول ما مراجعه کنید). اگر در Firebase و Google Cloud تازه‌کار هستید، بررسی کنید که آیا واجد شرایط دریافت اعتبار 300 دلاری هستید یا خیر.

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

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

نام سطل نباید شامل gs:// یا هیچ پیشوند پروتکل دیگری باشد. برای مثال، اگر URL سطل نمایش داده شده در کنسول Firebase برابر با gs:// PROJECT_ID .firebasestorage.app باشد، رشته PROJECT_ID .firebasestorage.app به Admin SDK ارسال کنید.

نود جی اس

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 در یک برنامه واحد استفاده کنید، می‌توانید ارجاعی به یک سطل سفارشی بازیابی کنید:

نود جی اس

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 خاص دسترسی پیدا کنید:

نود جی اس

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 دانلود بدون انقضا برای فایل‌های ذخیره شده در buckets خود استفاده کنید. هر کسی که این URL را داشته باشد می‌تواند به طور دائم به فایل دسترسی داشته باشد.

نود جی اس

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 SDK) برای ارائه دسترسی Cloud Storage ) به کتابخانه‌های کلاینت فضای ذخیره‌سازی ابری Google Cloud Storage ) وابسته هستند. ارجاعات سطل (bactelerator references) که توسط کیت توسعه نرم‌افزار مدیریت (Admin SDK) برگردانده می‌شوند، اشیاء تعریف‌شده در این کتابخانه‌ها هستند. برای یادگیری نحوه استفاده از ارجاعات سطل برگردانده‌شده در موارد استفاده مانند آپلود و دانلود فایل، به مستندات و ارجاعات API کتابخانه‌های کلاینت Google Cloud Storage مراجعه کنید.