Cloud Storage for Firebase আপনাকে ছবি, অডিও, ভিডিও এবং অন্যান্য ফাইলের (ব্যবহারকারীর তৈরি করা কন্টেন্ট সহ) মতো কন্টেন্ট আপলোড এবং শেয়ার করতে দেয়, যা আপনাকে আপনার অ্যাপে রিচ মিডিয়া কন্টেন্ট তৈরি করতে দেয়। আপনার ডেটা Google Cloud Storage বাকেটে স্টোর করা হয় — এটি হল এক্সাবাইট স্কেল অবজেক্ট স্টোরেজ সলিউশন যা অত্যন্ত সহজলভ্য এবং বিশ্বব্যাপী রিডানডেন্সি প্রদান করে। Cloud Storage for Firebase আপনাকে সরাসরি মোবাইল ডিভাইস এবং ওয়েব ব্রাউজার থেকে নিরাপদে এই ফাইলগুলি আপলোড করতে দেয়, নেটওয়ার্কের সমস্যা থাকলেও সহজে আপলোড করা যায়।
শুরু করার আগে
আপনি যদি আগে থেকে না করে থাকেন, তাহলে নিশ্চিত করুন যে আপনি Android অ্যাপের জন্য শুরু করার নির্দেশিকা সম্পূর্ণ করেছেন। এর মধ্যে পড়ে:
Firebase প্রোজেক্ট তৈরি করা।
প্রোজেক্টের সাথে আপনার Android অ্যাপ রেজিস্টার করা, এবং Firebase ডিপেন্ডেন্সি, Google পরিষেবা প্লাগ-ইন এবং আপনার Firebase কনফিগারেশন ফাইল (
google-services.json) আপনার অ্যাপে যোগ করে 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 SDK যোগ করুন
আপনার মডিউল (অ্যাপ-লেভেল) Gradle ফাইলে (সাধারণত<project>/<app-module>/build.gradle.kts বা
<project>/<app-module>/build.gradle),
Android-এর জন্য Cloud Storage লাইব্রেরির ডিপেন্ডেন্সি যোগ করুন। লাইব্রেরি ভার্সনিং নিয়ন্ত্রণ করতে আমরা
Firebase Android BoM
ব্যবহার করার সাজেশন দিই।
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:35.1.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 লাইব্রেরি ডিপেন্ডেন্সি যোগ করুন
আপনি 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:23.0.0") }
আপনার অ্যাপে 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 বাকেট ব্যবহার করতে চাইবেন।
তৃতীয় ব্যবহারের ক্ষেত্রটি তখন উপযোগী হয় যখন আপনি Google Drive-এর মতো কোনও অ্যাপ তৈরি করছেন, যেখানে ব্যবহারকারী একাধিক অ্যাকাউন্টে লগ-ইন করে থাকতে পারেন (যেমন, ব্যক্তিগত অ্যাকাউন্ট এবং অফিসের অ্যাকাউন্ট)। আপনি কাস্টম Firebase অ্যাপ ইনস্ট্যান্স ব্যবহার করে প্রতিটি অতিরিক্ত অ্যাকাউন্ট যাচাই করতে পারবেন।
একাধিক 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");
ইমপোর্ট করা বাকেট নিয়ে কাজ করা
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 অ্যাপ ব্যবহার করুন
আপনি যদি কাস্টম 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 কনসোলে ব্যবহার ও বিলিং ড্যাশবোর্ড মনিটর করুন যাতে একাধিক Firebase পরিষেবা জুড়ে আপনার প্রোজেক্টের ব্যবহারের সামগ্রিক ছবি পেতে পারেন। এছাড়াও, ব্যবহারের তথ্য আরও বিস্তারিতভাবে জানতে আপনি Cloud Storage ব্যবহার ড্যাশবোর্ড দেখতে পারেন।
Firebase লঞ্চ চেকলিস্ট পর্যালোচনা করুন।