Cloud Storage for Firebase আপনাকে ব্যবহারকারী-সৃষ্ট কন্টেন্ট, যেমন ছবি এবং ভিডিও, আপলোড ও শেয়ার করার সুযোগ দেয়, যার মাধ্যমে আপনি আপনার অ্যাপে রিচ মিডিয়া কন্টেন্ট তৈরি করতে পারেন। আপনার ডেটা একটি Google Cloud Storage বাকেটে সংরক্ষিত থাকে — এটি একটি এক্সাবাইট স্কেল অবজেক্ট স্টোরেজ সলিউশন, যাতে রয়েছে উচ্চ প্রাপ্যতা এবং গ্লোবাল রিডানডেন্সি। Cloud Storage for Firebase আপনাকে এই ফাইলগুলো সরাসরি মোবাইল ডিভাইস এবং ওয়েব ব্রাউজার থেকে নিরাপদে আপলোড করার সুবিধা দেয় এবং দুর্বল নেটওয়ার্কও সহজে সামাল দেয়।
শুরু করার আগে
যদি আগে থেকে না করে থাকেন, তাহলে অ্যান্ড্রয়েড অ্যাপের জন্য শুরু করার নির্দেশিকাটি সম্পূর্ণ করে নিন। এর মধ্যে রয়েছে:
একটি ফায়ারবেস প্রজেক্ট তৈরি করা হচ্ছে।
প্রজেক্টের সাথে আপনার অ্যান্ড্রয়েড অ্যাপটি রেজিস্টার করা এবং আপনার অ্যাপে Firebase ডিপেন্ডেন্সি, গুগল সার্ভিসেস প্লাগইন ও Firebase কনফিগ ফাইল (
google-services.json) যোগ করে অ্যাপটিকে Firebase-এর সাথে সংযুক্ত করা।
আপনার Firebase প্রজেক্টটি যেন পে-অ্যাজ-ইউ-গো ব্লেজ প্রাইসিং প্ল্যানে থাকে, তা নিশ্চিত করুন, যা অক্টোবর ২০২৪ থেকে কার্যকর হওয়া একটি আবশ্যিক শর্ত (আমাদের প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী দেখুন)। আপনি যদি Firebase এবং Google Cloud-এ নতুন হন, তবে আপনি $300 ক্রেডিটের জন্য যোগ্য কিনা তা যাচাই করে দেখুন।
একটি ডিফল্ট Cloud Storage বাকেট তৈরি করুন
Firebase কনসোলের নেভিগেশন প্যান থেকে Storage নির্বাচন করুন।
আপনার প্রজেক্টটি যদি এখনও ব্লেজের পে-অ্যাজ-ইউ-গো প্রাইসিং প্ল্যানে অন্তর্ভুক্ত না থাকে, তাহলে আপনাকে প্রজেক্টটি আপগ্রেড করার জন্য অনুরোধ করা হবে।
শুরু করতে ক্লিক করুন।
আপনার ডিফল্ট বাকেটের জন্য একটি অবস্থান নির্বাচন করুন।
বালতিতে
US-CENTRAL1,US-EAST1, এবংUS-WEST1Google Cloud Storage 'অলওয়েজ ফ্রি' টায়ারের সুবিধা নিতে পারে। অন্য সব লোকেশনের বাকেটগুলো Google Cloud Storage মূল্য এবং ব্যবহারবিধি অনুসরণ করে।আপনি চাইলে পরে একাধিক বাকেট তৈরি করতে পারেন, যার প্রত্যেকটির নিজস্ব অবস্থান থাকবে।
আপনার ডিফল্ট বাকেটের জন্য Firebase Security Rules কনফিগার করুন। ডেভেলপমেন্টের সময়, পাবলিক অ্যাক্সেসের জন্য আপনার নিয়মগুলো সেট আপ করার কথা বিবেচনা করুন।
সম্পন্ন ক্লিক করুন।
আপনি এখন Firebase কনসোলের Cloud Storage ফাইলস ট্যাবে বাকেটটি দেখতে পারবেন। আপনার ডিফল্ট বাকেট নামের ফরম্যাটটি হলোPROJECT_ID .firebasestorage.app .
সর্বসাধারণের প্রবেশাধিকার স্থাপন করুন
Cloud Storage for Firebase একটি ডিক্লারেটিভ রুলস ল্যাঙ্গুয়েজ প্রদান করে, যা আপনাকে নির্ধারণ করতে দেয় আপনার ডেটা কীভাবে সাজানো হবে, কীভাবে ইনডেক্স করা হবে এবং কখন আপনার ডেটা থেকে পড়া ও লেখা যাবে। ডিফল্টরূপে, Cloud Storage পড়া ও লেখার অ্যাক্সেস সীমাবদ্ধ থাকে, ফলে শুধুমাত্র অথেনটিকেটেড ব্যবহারকারীরাই ডেটা পড়তে বা লিখতে পারেন। Authentication সেট আপ না করেই কাজ শুরু করতে, আপনি পাবলিক অ্যাক্সেসের জন্য আপনার নিয়মগুলো কনফিগার করতে পারেন।
এর ফলে Cloud Storage যে কারও জন্য উন্মুক্ত হয়ে যায়, এমনকি যারা আপনার অ্যাপ ব্যবহার করছেন না তাদের জন্যও। তাই, অথেনটিকেশন সেট আপ করার সময় আপনার Cloud Storage পুনরায় সীমাবদ্ধ করতে ভুলবেন না।
আপনার অ্যাপে Cloud Storage SDK যোগ করুন
আপনার মডিউল (অ্যাপ-লেভেল) গ্রেডল ফাইলে (সাধারণত<project>/<app-module>/build.gradle.kts অথবা <project>/<app-module>/build.gradle ), অ্যান্ড্রয়েডের জন্য Cloud Storage লাইব্রেরির ডিপেন্ডেন্সি যোগ করুন। লাইব্রেরির ভার্সনিং নিয়ন্ত্রণের জন্য আমরা Firebase Android BoM ব্যবহার করার পরামর্শ দিই।dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:34.11.0")) // Add the dependency for the Cloud Storage library // When using the BoM, you don't specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-storage") }
Firebase Android BoM ব্যবহার করলে, আপনার অ্যাপ সর্বদা Firebase Android লাইব্রেরিগুলোর সামঞ্জস্যপূর্ণ সংস্করণ ব্যবহার করবে।
(বিকল্প) BoM ব্যবহার না করে ফায়ারবেস লাইব্রেরি নির্ভরতা যোগ করুন
আপনি যদি Firebase BoM ব্যবহার না করার সিদ্ধান্ত নেন, তাহলে আপনাকে প্রতিটি Firebase লাইব্রেরির ভার্সন তার ডিপেন্ডেন্সি লাইনে উল্লেখ করতে হবে।
মনে রাখবেন, আপনি যদি আপনার অ্যাপে একাধিক Firebase লাইব্রেরি ব্যবহার করেন, তাহলে আমরা লাইব্রেরির ভার্সনগুলো পরিচালনা করার জন্য BoM অফ মেটেরিয়ালস) ব্যবহার করার জন্য দৃঢ়ভাবে সুপারিশ করি, যা সব ভার্সনের সামঞ্জস্যতা নিশ্চিত করে।
dependencies { // Add the dependency for the Cloud Storage library // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-storage:22.0.1") }
আপনার অ্যাপে Cloud Storage সেট আপ করুন
আপনার অ্যাপের কোডবেসে থাকা Firebase কনফিগারেশন ফাইলটি (
google-services.json) আপনার ডিফল্ট Cloud Storage বাকেটের নাম দিয়ে আপডেট করা আছে কিনা, তা নিশ্চিত করুন।আপনার অ্যাপের মডিউল (অ্যাপ-লেভেল) ডিরেক্টরিতে থাকা
google-services.jsonফাইলটি প্রতিস্থাপন করতে এই ডাউনলোড করা কনফিগারেশন ফাইলটি ব্যবহার করুন।নিশ্চিত করুন যে আপনার অ্যাপে শুধুমাত্র এই সর্বশেষ ডাউনলোড করা কনফিগারেশন ফাইলটি রয়েছে এবং এর ফাইলের নামের শেষে
(2)এর মতো অতিরিক্ত অক্ষর যুক্ত নেই।
FirebaseStorageএর একটি ইনস্ট্যান্স তৈরি করে আপনার Cloud Storage বাকেট অ্যাক্সেস করুন:Kotlin
storage = Firebase.storage
// Alternatively, explicitly specify the bucket name URL. // val storage = Firebase.storage("gs://BUCKET_NAME")
Java
FirebaseStorage storage = FirebaseStorage.getInstance();
// Alternatively, explicitly specify the bucket name URL. // FirebaseStorage storage = FirebaseStorage.getInstance("gs://BUCKET_NAME");
আপনি Cloud Storage ব্যবহার শুরু করার জন্য প্রস্তুত!
পরবর্তী পদক্ষেপ? Cloud Storage রেফারেন্স তৈরি করার পদ্ধতি জেনে নিন।
উন্নত সেটআপ
কিছু ব্যবহারের ক্ষেত্র রয়েছে যেগুলোর জন্য অতিরিক্ত সেটআপের প্রয়োজন হয়:
- একাধিক ভৌগোলিক অঞ্চলে Cloud Storage বাকেট ব্যবহার করা
- বিভিন্ন স্টোরেজ ক্লাসে Cloud Storage বাকেট ব্যবহার করা
- একই অ্যাপে একাধিক প্রমাণীকৃত ব্যবহারকারীর সাথে Cloud Storage বাকেট ব্যবহার করা
আপনার যদি বিশ্বজুড়ে ব্যবহারকারী থাকে এবং আপনি তাদের ডেটা তাদের কাছাকাছি সংরক্ষণ করতে চান, তাহলে প্রথম ব্যবহারটি আদর্শ। উদাহরণস্বরূপ, ল্যাটেন্সি কমাতে আপনি মার্কিন যুক্তরাষ্ট্র, ইউরোপ এবং এশিয়ায় বাকেট তৈরি করে সেই অঞ্চলের ব্যবহারকারীদের ডেটা সংরক্ষণ করতে পারেন।
দ্বিতীয় ব্যবহারটি তখন সহায়ক হয়, যখন আপনার কাছে বিভিন্ন অ্যাক্সেস প্যাটার্নের ডেটা থাকে। উদাহরণস্বরূপ: আপনি একটি মাল্টি-রিজিওনাল বা রিজিওনাল বাকেট সেট আপ করতে পারেন যা ছবি বা অন্যান্য ঘন ঘন অ্যাক্সেস করা কন্টেন্ট সংরক্ষণ করে, এবং একটি নিয়ারলাইন বা কোল্ডলাইন বাকেট সেট আপ করতে পারেন যা ব্যবহারকারীর ব্যাকআপ বা অন্যান্য কদাচিৎ অ্যাক্সেস করা কন্টেন্ট সংরক্ষণ করে।
এই উভয় ব্যবহারের ক্ষেত্রেই, আপনার একাধিক Cloud Storage বাকেট ব্যবহার করার প্রয়োজন হবে।
তৃতীয় ব্যবহারটি তখন কাজে আসে যখন আপনি গুগল ড্রাইভের মতো এমন কোনো অ্যাপ তৈরি করছেন, যা ব্যবহারকারীদের একাধিক লগ-ইন করা অ্যাকাউন্ট (যেমন, একটি ব্যক্তিগত অ্যাকাউন্ট এবং একটি কর্মক্ষেত্রের অ্যাকাউন্ট) রাখার সুযোগ দেয়। প্রতিটি অতিরিক্ত অ্যাকাউন্ট প্রমাণীকরণের জন্য আপনি একটি কাস্টম ফায়ারবেস অ্যাপ ইনস্ট্যান্স ব্যবহার করতে পারেন।
একাধিক Cloud Storage বাকেট ব্যবহার করুন
আপনি যদি এই গাইডে আগে বর্ণিত ডিফল্ট বাকেটটি ছাড়া অন্য কোনো Cloud Storage বাকেট ব্যবহার করতে চান, অথবা একটি অ্যাপে একাধিক Cloud Storage বাকেট ব্যবহার করতে চান, তাহলে আপনি FirebaseStorage এর এমন একটি ইনস্ট্যান্স তৈরি করতে পারেন যা আপনার কাস্টম বাকেটটিকে রেফারেন্স করবে:
Kotlin
// Get a non-default Storage bucket val storage = Firebase.storage("gs://my-custom-bucket")
Java
// Get a non-default Storage bucket FirebaseStorage storage = FirebaseStorage.getInstance("gs://my-custom-bucket");
আমদানিকৃত বাকেটগুলির সাথে কাজ করা
ফায়ারবেসে বিদ্যমান কোনো Cloud Storage বাকেট ইম্পোর্ট করার সময়, আপনাকে Google Cloud এসডিকে -তে অন্তর্ভুক্ত gsutil টুলটি ব্যবহার করে ফায়ারবেসকে এই ফাইলগুলি অ্যাক্সেস করার অনুমতি দিতে হবে।
gsutil -m acl ch -r -u service-PROJECT_NUMBER@gcp-sa-firebasestorage.iam.gserviceaccount.com gs://BUCKET_NAME
ফায়ারবেস প্রজেক্টের পরিচিতিতে বর্ণিত পদ্ধতি অনুসরণ করে আপনি আপনার প্রজেক্ট নম্বরটি খুঁজে নিতে পারেন।
এটি নতুন তৈরি করা বাকেটগুলিকে প্রভাবিত করে না, কারণ সেগুলিতে ডিফল্ট অ্যাক্সেস কন্ট্রোল ফায়ারবেসকে অনুমতি দেওয়ার জন্য সেট করা থাকে। এটি একটি অস্থায়ী ব্যবস্থা, এবং ভবিষ্যতে এটি স্বয়ংক্রিয়ভাবে কার্যকর করা হবে।
একটি কাস্টম ফায়ারবেস অ্যাপ ব্যবহার করুন
আপনি যদি একটি কাস্টম FirebaseApp ব্যবহার করে আরও জটিল কোনো অ্যাপ তৈরি করেন, তাহলে আপনি সেই অ্যাপটি দিয়ে ইনিশিয়ালাইজ করা FirebaseStorage এর একটি ইনস্ট্যান্স তৈরি করতে পারেন:
Kotlin
// Get the default bucket from a custom FirebaseApp val storage = Firebase.storage(customApp!!) // Get a non-default bucket from a custom FirebaseApp val customStorage = Firebase.storage(customApp, "gs://my-custom-bucket")
Java
// Get the default bucket from a custom FirebaseApp FirebaseStorage storage = FirebaseStorage.getInstance(customApp); // Get a non-default bucket from a custom FirebaseApp FirebaseStorage customStorage = FirebaseStorage.getInstance(customApp, "gs://my-custom-bucket");
পরবর্তী পদক্ষেপ
আপনার অ্যাপটি চালু করার জন্য প্রস্তুত হন:
শুধুমাত্র আপনার অ্যাপগুলোই যেন আপনার স্টোরেজ বাকেটগুলো অ্যাক্সেস করতে পারে, তা নিশ্চিত করতে App Check সক্ষম করুন।
Google Cloud কনসোলে আপনার প্রোজেক্টের জন্য বাজেট অ্যালার্ট সেট আপ করুন।
আপনার প্রোজেক্টের একাধিক ফায়ারবেস পরিষেবা জুড়ে ব্যবহারের একটি সামগ্রিক চিত্র পেতে Firebase কনসোলে থাকা ব্যবহার এবং বিলিং ড্যাশবোর্ডটি পর্যবেক্ষণ করুন। আরও বিস্তারিত ব্যবহারের তথ্যের জন্য আপনি Cloud Storage ব্যবহার ড্যাশবোর্ডটিও দেখতে পারেন।
ফায়ারবেস লঞ্চ চেকলিস্টটি পর্যালোচনা করুন।