Cloud Storage for Firebase আপনার ডেটা Google Cloud Storage বাকেটে স্টোর করে — এটি হল উচ্চ উপলভ্যতা এবং গ্লোবাল রিডানডেন্সি সহ এক্সাবাইট স্কেল অবজেক্ট স্টোরেজ সলিউশন। Firebase অ্যাডমিন SDK আপনাকে বিশেষ সুবিধা প্রাপ্ত পরিবেশ থেকে সরাসরি আপনার Cloud Storage বাকেট অ্যাক্সেস করার অনুমতি দেয়। তারপর আপনি Google Cloud Storage API ব্যবহার করে বাকেটে স্টোর করা অবজেক্ট ম্যানিপুলেট করতে পারবেন।
এছাড়াও, Admin SDK আপনাকে শেয়ার করার মতো URL তৈরি করতে দেয় যাতে ব্যবহারকারীরা আপনার বাকেটে অবজেক্ট ডাউনলোড করতে পারেন।
আপনার Firebase প্রোজেক্ট ব্যবহার অনুযায়ী পেমেন্ট করার Blaze প্রাইসিং প্ল্যান-এ আছে কিনা তা নিশ্চিত করুন, যা Cloud Storage for Firebase ব্যবহার করার জন্য প্রয়োজন। আপনি Firebase ও Google Cloud-এ নতুন হলে, আপনি $৩০০ ফ্রি ট্রায়াল ক্রেডিট-এর জন্য উপযুক্ত কিনা তা চেক করুন।
ডিফল্ট বাকেট ব্যবহার করুন
অ্যাডমিন SDK শুরু করার সময় আপনি ডিফল্ট বাকেটের নাম উল্লেখ করতে পারেন। তারপর আপনি এই বাকেটের জন্য একটি যাচাইকৃত রেফারেন্স পুনরুদ্ধার করতে পারবেন।
বাকেটের নামে gs:// বা অন্য কোনও প্রোটোকল প্রিফিক্স থাকলে চলবে না।
যেমন,
Firebase কনসোলে
দেখানো বাকেট URL যদি gs://PROJECT_ID.firebasestorage.app হয়, তাহলে অ্যাডমিন SDK-তে
PROJECT_ID.firebasestorage.app স্ট্রিং পাস করুন।
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.
Python
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.
Go
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 বাকেট ব্যবহার করতে চান, তাহলে আপনি কাস্টম বাকেটের রেফারেন্স পেতে পারেন:
Node.js
const bucket = getStorage().bucket('my-custom-bucket');
জাভা
Bucket bucket = StorageClient.getInstance().bucket("my-custom-bucket");
Python
bucket = storage.bucket('my-custom-bucket')
Go
bucket, err := client.Bucket("my-custom-bucket")
কাস্টম Firebase অ্যাপ ব্যবহার করুন
আপনি যদি আরও জটিল অ্যাপ্লিকেশন তৈরি করেন যা একাধিক Firebase অ্যাপের সাথে ইন্টার্যাক্ট করে, তাহলে আপনি নিম্নলিখিত উপায়ে নির্দিষ্ট Firebase অ্যাপের সাথে যুক্ত Cloud Storage বাকেট অ্যাক্সেস করতে পারবেন:
Node.js
const bucket = getStorage(customApp).bucket();
জাভা
Bucket bucket = StorageClient.getInstance(customApp).bucket();
Python
bucket = storage.bucket(app=custom_app)
Go
otherClient, err := otherApp.Storage(context.Background())
bucket, err := otherClient.Bucket("other-app-bucket")
শেয়ার করা যাবে এমন ডাউনলোড URL পান
আপনার বাকেটে স্টোর করা ফাইলের জন্য মেয়াদ শেষ না হওয়া ডাউনলোড URL তৈরি করতে, আপনি Admin SDK ব্যবহার করতে পারেন। এই 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 অ্যাডমিন SDK Cloud Storage অ্যাক্সেস প্রদান করতে Google Cloud Storage ক্লায়েন্ট লাইব্রেরির উপর নির্ভর করে। Admin SDK-এর মাধ্যমে ফেরত পাঠানো বাকেট রেফারেন্স হল এইসব লাইব্রেরিতে সংজ্ঞায়িত অবজেক্ট। Google Cloud Storage ক্লায়েন্ট লাইব্রেরির ডকুমেন্টেশন ও API রেফারেন্স দেখুন এবং ফাইল আপলোড ও ডাউনলোড করার মতো ব্যবহারের ক্ষেত্রে ফেরত পাওয়া বাকেট রেফারেন্স কীভাবে ব্যবহার করবেন তা জানুন।