Cloud Storage for Firebase আপনার ডেটা একটি Google Cloud Storage বাকেটে সংরক্ষণ করে — একটি এক্সাবাইট স্কেল অবজেক্ট স্টোরেজ সলিউশন যার উচ্চ প্রাপ্যতা এবং বিশ্বব্যাপী রিডানডেন্সি রয়েছে। Firebase Admin SDK আপনাকে বিশেষায়িত পরিবেশ থেকে সরাসরি আপনার Cloud Storage বাকেটে অ্যাক্সেস করার অনুমতি দেয়। তারপর আপনি Google Cloud Storage API ব্যবহার করে বাকেটে সংরক্ষিত বস্তুগুলি পরিচালনা করতে পারেন।
Admin SDK আপনাকে শেয়ারযোগ্য URL তৈরি করতে দেয় যাতে ব্যবহারকারীরা আপনার বাকেট থেকে বস্তু ডাউনলোড করতে পারে।
এছাড়াও, নিশ্চিত করুন যে আপনার Firebase প্রকল্পটি Pay-as-you-go Blaze মূল্য পরিকল্পনায় রয়েছে, যা ২০২৪ সালের অক্টোবরে শুরু হওয়া একটি প্রয়োজনীয়তা (আমাদের প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী দেখুন)। আপনি যদি Firebase এবং Google Cloud-এ নতুন হন, তাহলে আপনি $300 ক্রেডিটের জন্য যোগ্য কিনা তা পরীক্ষা করুন।
একটি ডিফল্ট বাকেট ব্যবহার করুন
অ্যাডমিন SDK আরম্ভ করার সময় আপনি একটি ডিফল্ট বাকেট নাম নির্দিষ্ট করতে পারেন। তারপর আপনি এই বাকেটের একটি প্রমাণীকৃত রেফারেন্স পুনরুদ্ধার করতে পারেন।
বাকেটের নামে gs:// বা অন্য কোনও প্রোটোকল প্রিফিক্স থাকা উচিত নয় । উদাহরণস্বরূপ, যদি Firebase কনসোলে প্রদর্শিত বাকেট URLটি gs:// PROJECT_ID .firebasestorage.app হয়, তাহলে PROJECT_ID .firebasestorage.app স্ট্রিংটি অ্যাডমিন 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.
আপনার 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")
একটি শেয়ারযোগ্য ডাউনলোড URL পান
আপনার বাকেটে সংরক্ষিত ফাইলগুলির জন্য একটি অ-মেয়াদোত্তীর্ণ ডাউনলোড URL তৈরি করতে আপনি Admin SDK ব্যবহার করতে পারেন। এই 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 অ্যাডমিন SDK গুলি Cloud Storage অ্যাক্সেস প্রদানের জন্য Google Cloud Storage ক্লায়েন্ট লাইব্রেরির উপর নির্ভর করে। অ্যাডমিন SDK দ্বারা ফেরত পাঠানো বাকেট রেফারেন্সগুলি এই লাইব্রেরিতে সংজ্ঞায়িত বস্তু। ফাইল আপলোড এবং ডাউনলোডের মতো ব্যবহারের ক্ষেত্রে ফেরত আসা বাকেট রেফারেন্সগুলি কীভাবে ব্যবহার করতে হয় তা শিখতে Google Cloud Storage ক্লায়েন্ট লাইব্রেরির ডকুমেন্টেশন এবং API রেফারেন্সগুলি পড়ুন।