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

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

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

یک 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

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