Cloud Storage for Firebase আপনাকে ছবি, অডিও, ভিডিও এবং অন্যান্য ফাইলের (ব্যবহারকারীর তৈরি করা কন্টেন্ট সহ) মতো কন্টেন্ট আপলোড এবং শেয়ার করতে দেয়, যা আপনাকে আপনার অ্যাপে রিচ মিডিয়া কন্টেন্ট তৈরি করতে দেয়। আপনার ডেটা Google Cloud Storage বাকেটে স্টোর করা হয় — এটি হল এক্সাবাইট স্কেল অবজেক্ট স্টোরেজ সলিউশন যা অত্যন্ত সহজলভ্য এবং বিশ্বব্যাপী রিডানডেন্সি প্রদান করে। Cloud Storage for Firebase আপনাকে সরাসরি মোবাইল ডিভাইস এবং ওয়েব ব্রাউজার থেকে নিরাপদে এই ফাইলগুলি আপলোড করতে দেয়, নেটওয়ার্কের সমস্যা থাকলেও সহজে আপলোড করা যায়।
শুরু করার আগে
আপনি যদি আগে থেকে না করে থাকেন, তাহলে নিশ্চিত করুন যে আপনি ওয়েব অ্যাপের জন্য শুরু করার নির্দেশিকা সম্পূর্ণ করেছেন। এর মধ্যে পড়ে:
Firebase প্রোজেক্ট তৈরি করা।
প্রোজেক্টের সাথে আপনার ওয়েব অ্যাপ রেজিস্টার করা, এবং Firebase JS SDK ও আপনার Firebase কনফিগারেশন অবজেক্ট আপনার অ্যাপে যোগ করে Firebase-এর সাথে আপনার অ্যাপ কানেক্ট করা।
আপনার Firebase প্রোজেক্ট যখন ব্যবহার করবেন তখন পেমেন্ট করুন Blaze প্রাইসিং প্ল্যান-এ আছে কিনা তা নিশ্চিত করুন, যা Cloud Storage for Firebase ব্যবহার করার জন্য প্রয়োজন। আপনি Firebase এবং Google Cloud-এ নতুন হলে, $৩০০ ফ্রি ট্রায়াল ক্রেডিট-এর জন্য উপযুক্ত কিনা তা চেক করুন।
ডিফল্ট Cloud Storage বাকেট তৈরি করুন
Firebase কনসোলে, ডেটাবেস ও স্টোরেজ > স্টোরেজ বিকল্পে নেভিগেট করুন।
আপনার প্রোজেক্ট এখনও Blaze-এর 'যখন ব্যবহার করবেন তখন পেমেন্ট করুন' প্রাইসিং প্ল্যানে না থাকলে, আপনাকে প্রোজেক্ট আপগ্রেড করার জন্য প্রম্পট করা হবে।
শুরু করুন বিকল্পে ক্লিক করুন।
আপনার ডিফল্ট বাকেটের জন্য একটি লোকেশন বেছে নিন।
,US-CENTRAL1 এবংUS-EAST1 -এ বাকেট Google Cloud Storage-এর জন্য "সবসময় ফ্রি" টিয়ার-এর সুবিধা নিতে পারে। অন্যান্য সব লোকেশনে বাকেট Google Cloud Storage মূল্য ও ব্যবহার অনুসরণ করে।US-WEST1আপনি চাইলে, পরে একাধিক বাকেট তৈরি করতে পারবেন, যার প্রত্যেকটির নিজস্ব লোকেশন থাকবে।
আপনার ডিফল্ট বাকেটের জন্য Firebase Security Rules কনফিগার করুন। ডেভেলপমেন্টের সময়, সর্বজনীন অ্যাক্সেসের জন্য আপনার নিয়ম সেট-আপ করার কথা বিবেচনা করুন।
হয়ে গেছে বিকল্পে ক্লিক করুন।
আপনি এখন Firebase কনসোলে বাকেট দেখতে পারবেন (নেভিগেট করে
ডেটাবেস ও স্টোরেজ > স্টোরেজ >
ফাইল ট্যাব বিকল্পে যান)।
আপনার ডিফল্ট বাকেট নামের ফর্ম্যাট হল PROJECT_ID.firebasestorage.app
সর্বজনীন অ্যাক্সেস সেট-আপ করুন
Cloud Storage for Firebase একটি ডিক্লারেটিভ রুল ল্যাঙ্গুয়েজ প্রদান করে যা আপনাকে আপনার ডেটা কীভাবে স্ট্রাকচার করা উচিত, কীভাবে এটি ইন্ডেক্স করা উচিত এবং কখন আপনার ডেটা পড়া এবং লেখা যেতে পারে তা নির্ধারণ করতে দেয়। ডিফল্ট হিসেবে, Cloud Storage-এ রিড ও রাইট অ্যাক্সেস সীমাবদ্ধ করা থাকে যাতে শুধু যাচাই করা ব্যবহারকারীরাই ডেটা রিড বা রাইট করতে পারেন। Authentication সেট-আপ না করে শুরু করতে, আপনি সর্বজনীন অ্যাক্সেসের জন্য আপনার নিয়ম কনফিগার করতে পারেন।
এর ফলে, আপনার অ্যাপ ব্যবহার করেন না এমন ব্যক্তি সহ যে কেউ Cloud Storage খুলতে পারবেন, তাই যাচাইকরণ সেট-আপ করার সময় আপনার Cloud Storage আবার সীমাবদ্ধ করতে ভুলবেন না।
Cloud Storage JS SDK যোগ করুন এবং Cloud Storage শুরু করুন
JavaScript SDK শুরু করার সময় আপনাকে অবশ্যই Cloud Storage বাকেট নাম উল্লেখ করতে হবে।
আপনি Firebase কনসোলে (ডেটাবেস ও স্টোরেজ > স্টোরেজ > ফাইল ট্যাব বিকল্পে নেভিগেট করুন) Cloud Storage বাকেটের নাম খুঁজে পাবেন। আপনি কখন ডিফল্ট বাকেট তৈরি করেছেন তার উপর নির্ভর করে, বাকেটের নাম নিম্নলিখিত ফর্ম্যাটের মধ্যে একটি হবে:
-
(সেপ্টেম্বর ২০২৪-এ বা তার পরেPROJECT_ID.firebasestorage.appডিফল্ট বাকেট তৈরি করা হয়েছে ) -
(PROJECT_ID.appspot.comসেপ্টেম্বর ২০২৪ -এর আগে তৈরি করা লিগ্যাসি ডিফল্ট বাকেট)
নিম্নলিখিত কোড স্নিপেট ব্যবহার করে SDK ইনিশিয়ালাইজ করুন:
Web
import { initializeApp } from "firebase/app"; import { getStorage } from "firebase/storage"; // TODO: Replace the following with your app's Firebase project configuration // See: https://firebase.google.com/docs/web/learn-more#config-object const firebaseConfig = { // ... storageBucket: 'BUCKET_NAME' }; // Initialize Firebase const app = initializeApp(firebaseConfig); // Initialize Cloud Storage and get a reference to the service const storage = getStorage(app);
Web
import firebase from "firebase/app"; import "firebase/compat/storage"; // TODO: Replace the following with your app's Firebase project configuration // See: https://firebase.google.com/docs/web/learn-more#config-object const firebaseConfig = { // ... storageBucket: 'BUCKET_NAME' }; // Initialize Firebase firebase.initializeApp(firebaseConfig); // Initialize Cloud Storage and get a reference to the service const storage = firebase.storage();
আপনি Cloud Storage ব্যবহার করা শুরু করার জন্য রেডি!
পরবর্তী ধাপ? কীভাবে Cloud Storage রেফারেন্স তৈরি করবেন তা জানুন।
উন্নত সেট-আপ
কিছু ব্যবহারের ক্ষেত্রে অতিরিক্ত সেট-আপ প্রয়োজন:
- একাধিক ভৌগোলিক অঞ্চলে Cloud Storageটি বাকেট ব্যবহার করা হচ্ছে
- বিভিন্ন স্টোরেজ ক্লাসে Cloud Storageটি বাকেট ব্যবহার করা হচ্ছে
- একই অ্যাপে একাধিক যাচাই করা ব্যবহারকারীর সাথে Cloud Storageটি বাকেট ব্যবহার করা হচ্ছে
আপনার ব্যবহারকারী সারা বিশ্ব জুড়ে থাকলে এবং তাদের ডেটা তাদের কাছাকাছি স্টোর করতে চাইলে, প্রথম ব্যবহারের কেসটি উপযুক্ত। যেমন, আপনি মার্কিন যুক্তরাষ্ট্র, ইউরোপ ও এশিয়ায় বাকেট তৈরি করতে পারেন যাতে সেইসব অঞ্চলের ব্যবহারকারীদের ডেটা স্টোর করা যায় এবং লেটেন্সি কমানো যায়।
আপনার কাছে বিভিন্ন অ্যাক্সেস প্যাটার্ন সহ ডেটা থাকলে, দ্বিতীয় ব্যবহারের ক্ষেত্রে তা সহায়ক হয়। যেমন: আপনি মাল্টি-রিজিয়নাল বা রিজিয়নাল বাকেট সেট-আপ করতে পারেন যা ছবি বা অন্যান্য ঘন ঘন অ্যাক্সেস করা কন্টেন্ট স্টোর করে এবং একটি নিয়ারলাইন বা কোল্ডলাইন বাকেট যা ব্যবহারকারীর ব্যাকআপ বা অন্যান্য কম ঘন ঘন অ্যাক্সেস করা কন্টেন্ট স্টোর করে।
এইসব ব্যবহারের ক্ষেত্রে, আপনি একাধিক Cloud Storage বাকেট ব্যবহার করতে চাইবেন।
তৃতীয় ব্যবহারের ক্ষেত্রটি তখন উপযোগী হয় যখন আপনি Google Drive-এর মতো কোনও অ্যাপ তৈরি করছেন, যেখানে ব্যবহারকারী একাধিক অ্যাকাউন্টে লগ-ইন করে থাকতে পারেন (যেমন, ব্যক্তিগত অ্যাকাউন্ট এবং অফিসের অ্যাকাউন্ট)। প্রতিটি অতিরিক্ত অ্যাকাউন্ট যাচাই করতে আপনি কাস্টম Firebase অ্যাপ ইনস্ট্যান্স ব্যবহার করতে পারবেন।
একাধিক Cloud Storage বাকেট ব্যবহার করা
আপনি যদি এই গাইডে আগে বর্ণনা করা ডিফল্ট বাকেট ছাড়া অন্য কোনও Cloud Storage বাকেট ব্যবহার করতে চান অথবা
একটি অ্যাপে একাধিক Cloud Storage বাকেট ব্যবহার করতে চান, তাহলে
আপনি firebase.storage-এর একটি ইনস্ট্যান্স তৈরি করতে পারেন যা আপনার কাস্টম বাকেটকে রেফারেন্স করে:
Web
import { getApp } from "firebase/app"; import { getStorage } from "firebase/storage"; // Get a non-default Storage bucket const firebaseApp = getApp(); const storage = getStorage(firebaseApp, "gs://my-custom-bucket");
Web
// Get a non-default Storage bucket var storage = firebase.app().storage("gs://my-custom-bucket");
ইমপোর্ট করা বাকেট নিয়ে কাজ করা
Firebase-এ আগে থেকে থাকা Cloud Storage বাকেট ইমপোর্ট করার সময়,
Google Cloud SDK-তে অন্তর্ভুক্ত
gsutil টুল ব্যবহার করে এইসব ফাইল অ্যাক্সেস করার জন্য
আপনাকে Firebase-কে অনুমতি দিতে হবে:
gsutil -m acl ch -r -u service-PROJECT_NUMBER@gcp-sa-firebasestorage.iam.gserviceaccount.com gs://BUCKET_NAME
Firebase প্রোজেক্টের ভূমিকা-তে যেভাবে বর্ণনা করা হয়েছে, আপনি সেইভাবে আপনার প্রোজেক্ট নম্বর খুঁজে পেতে পারেন।
এটি নতুন তৈরি করা বাকেটের উপর প্রভাব ফেলে না, কারণ সেগুলিতে Firebase-কে অনুমতি দেওয়ার জন্য ডিফল্ট অ্যাক্সেস কন্ট্রোল সেট করা থাকে। এটি একটি সাময়িক ব্যবস্থা এবং ভবিষ্যতে অটোমেটিক করা হবে।
কাস্টম Firebase অ্যাপ ব্যবহার করুন
আপনি যদি কাস্টম firebase.app.App ব্যবহার করে আরও জটিল অ্যাপ তৈরি করেন, তাহলে
আপনি সেই অ্যাপের মাধ্যমে শুরু করা firebase.storage.Storage-এর একটি ইনস্ট্যান্স তৈরি করতে পারেন:
Web
import { getStorage } from "firebase/storage"; // Get the default bucket from a custom firebase.app.App const storage1 = getStorage(customApp); // Get a non-default bucket from a custom firebase.app.App const storage2 = getStorage(customApp, "gs://my-custom-bucket");
Web
// Get the default bucket from a custom firebase.app.App var storage = customApp.storage(); // Get a non-default bucket from a custom firebase.app.App var storage = customApp.storage("gs://my-custom-bucket");
পরবর্তী ধাপ
আপনার অ্যাপ লঞ্চ করার জন্য প্রস্তুত হন:
শুধুমাত্র আপনার অ্যাপ যাতে আপনার স্টোরেজ বাকেট অ্যাক্সেস করতে পারে তা নিশ্চিত করতে সাহায্য করার জন্য App Check চালু করুন।
Google Cloud কনসোলে আপনার প্রোজেক্টের জন্য বাজেট সংক্রান্ত সতর্কতা সেট-আপ করুন।
Firebase কনসোলে ব্যবহার ও বিলিং ড্যাশবোর্ড মনিটর করুন যাতে একাধিক Firebase পরিষেবা জুড়ে আপনার প্রোজেক্টের ব্যবহারের সামগ্রিক ছবি পেতে পারেন। এছাড়াও, ব্যবহারের তথ্য আরও বিস্তারিতভাবে জানতে আপনি Cloud Storage ব্যবহার ড্যাশবোর্ড দেখতে পারেন।
Firebase লঞ্চ চেকলিস্ট পর্যালোচনা করুন।