Cloud Storage for Firebase আপনার ডেটা একটি Google Cloud Storage বাকেটে সংরক্ষণ করে — এটি উচ্চ প্রাপ্যতা এবং গ্লোবাল রিডানডেন্সি সহ একটি এক্সাবাইট স্কেল অবজেক্ট স্টোরেজ সলিউশন। ফায়ারবেস অ্যাডমিন SDK আপনাকে প্রিভিলেজড এনভায়রনমেন্ট থেকে সরাসরি আপনার Cloud Storage বাকেটগুলো অ্যাক্সেস করার সুযোগ দেয়। এরপর আপনি বাকেটগুলোতে সংরক্ষিত অবজেক্টগুলো পরিচালনা করার জন্য Google Cloud Storage API ব্যবহার করতে পারেন।
Admin SDK আপনাকে শেয়ারযোগ্য ইউআরএল তৈরি করার সুযোগও দেয়, যাতে ব্যবহারকারীরা আপনার বাকেটগুলোতে থাকা অবজেক্টগুলো ডাউনলোড করতে পারে।
এছাড়াও, নিশ্চিত করুন যে আপনার Firebase প্রজেক্টটি পে-অ্যাজ-ইউ-গো ব্লেজ প্রাইসিং প্ল্যানে রয়েছে, যা অক্টোবর ২০২৪ থেকে কার্যকর হওয়া একটি আবশ্যিক শর্ত (আমাদের প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী দেখুন)। আপনি যদি Firebase এবং Google Cloud-এ নতুন হন, তবে আপনি $300 ক্রেডিটের জন্য যোগ্য কিনা তা যাচাই করে দেখুন।
একটি ডিফল্ট বালতি ব্যবহার করুন
অ্যাডমিন এসডিকে চালু করার সময় আপনি একটি ডিফল্ট বাকেটের নাম নির্দিষ্ট করে দিতে পারেন। এরপর আপনি এই বাকেটটির একটি প্রমাণীকৃত রেফারেন্স পুনরুদ্ধার করতে পারবেন।
বাকেটের নামে gs:// বা অন্য কোনো প্রোটোকল প্রিফিক্স থাকা যাবে না । উদাহরণস্বরূপ, যদি Firebase কনসোলে প্রদর্শিত বাকেট URL-টি gs:// PROJECT_ID .firebasestorage.app হয়, তাহলে Admin SDK-তে PROJECT_ID .firebasestorage.app স্ট্রিংটি পাস করুন।
নোড.জেএস
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.
আপনার Firebase প্রোজেক্টের সাথে যুক্ত বাকেটগুলিতে কন্টেন্ট আপলোড, ডাউনলোড এবং পরিবর্তন করার জন্য, আপনি অফিসিয়াল Google Cloud Storage ক্লায়েন্ট লাইব্রেরির সাথে অ্যাডমিন SDK দ্বারা প্রাপ্ত বাকেট রেফারেন্সগুলি ব্যবহার করতে পারেন। উল্লেখ্য যে, Firebase অ্যাডমিন SDK ব্যবহার করার সময় আপনাকে Google Cloud Storage লাইব্রেরিগুলি প্রমাণীকরণ করতে হবে না। অ্যাডমিন 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 বাকেটগুলো অ্যাক্সেস করতে পারেন:
নোড.জেএস
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 ব্যবহার করতে পারেন। এই ইউআরএলটি যার কাছে থাকবে, তিনি স্থায়ীভাবে ফাইলটি অ্যাক্সেস করতে পারবেন।
নোড.জেএস
const { getStorage, getDownloadURL } = require('firebase-admin/storage');
const fileRef = getStorage().bucket('my-bucket').file('my-file');
const downloadURL= await getDownloadURL(fileRef);
Google Cloud Storage ক্লায়েন্ট লাইব্রেরি
Cloud Storage অ্যাক্সেস প্রদানের জন্য ফায়ারবেস অ্যাডমিন এসডিকে-গুলো Google Cloud Storage ক্লায়েন্ট লাইব্রেরির উপর নির্ভর করে। অ্যাডমিন এসডিকে দ্বারা ফেরত দেওয়া বাকেট রেফারেন্সগুলো হলো এই লাইব্রেরিগুলোতে সংজ্ঞায়িত অবজেক্ট। ফাইল আপলোড এবং ডাউনলোডের মতো ক্ষেত্রে ফেরত দেওয়া বাকেট রেফারেন্সগুলো কীভাবে ব্যবহার করতে হয় তা জানতে Google Cloud Storage ক্লায়েন্ট লাইব্রেরির ডকুমেন্টেশন এবং এপিআই রেফারেন্স দেখুন।