ক্লাউড স্টোরেজ ফর ফায়ারবেস আপনাকে ব্যবহারকারী-সৃষ্ট কন্টেন্ট, যেমন ছবি এবং ভিডিও, আপলোড ও শেয়ার করার সুযোগ দেয়, যার মাধ্যমে আপনি আপনার অ্যাপে রিচ মিডিয়া কন্টেন্ট তৈরি করতে পারেন। আপনার ডেটা একটি গুগল ক্লাউড স্টোরেজ বাকেটে সংরক্ষিত থাকে — এটি একটি এক্সাবাইট স্কেল অবজেক্ট স্টোরেজ সলিউশন, যাতে রয়েছে উচ্চ প্রাপ্যতা এবং গ্লোবাল রিডানডেন্সি। ক্লাউড স্টোরেজ ফর ফায়ারবেস আপনাকে এই ফাইলগুলো সরাসরি মোবাইল ডিভাইস এবং ওয়েব ব্রাউজার থেকে নিরাপদে আপলোড করার সুবিধা দেয় এবং দুর্বল নেটওয়ার্কও সহজে সামাল দেয়।
শুরু করার আগে
যদি আপনি ইতিমধ্যেই তা না করে থাকেন, তাহলে ফ্লাটার অ্যাপস-এর জন্য গেটিং স্টার্টেড গাইডটি সম্পূর্ণ করে নিন। এর মধ্যে রয়েছে:
একটি ফায়ারবেস প্রজেক্ট তৈরি করা হচ্ছে।
ফ্লাটারের জন্য ফায়ারবেস এসডিকে ইনস্টল এবং চালু করা।
আপনার Firebase প্রজেক্টটি যেন পে-অ্যাজ-ইউ-গো ব্লেজ প্রাইসিং প্ল্যানে থাকে, তা নিশ্চিত করুন, যা অক্টোবর ২০২৪ থেকে কার্যকর হওয়া একটি আবশ্যিক শর্ত (আমাদের প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী দেখুন)। আপনি যদি Firebase এবং Google Cloud-এ নতুন হন, তবে আপনি $300 ক্রেডিটের জন্য যোগ্য কিনা তা যাচাই করে দেখুন।
একটি ডিফল্ট ক্লাউড স্টোরেজ বাকেট তৈরি করুন
Firebase কনসোলের নেভিগেশন প্যান থেকে Storage নির্বাচন করুন।
আপনার প্রজেক্টটি যদি এখনও ব্লেজের পে-অ্যাজ-ইউ-গো প্রাইসিং প্ল্যানে অন্তর্ভুক্ত না থাকে, তাহলে আপনাকে প্রজেক্টটি আপগ্রেড করার জন্য অনুরোধ করা হবে।
শুরু করতে ক্লিক করুন।
আপনার ডিফল্ট বাকেটের জন্য একটি অবস্থান নির্বাচন করুন।
বালতিতে
US-CENTRAL1,US-EAST1, এবংUS-WEST1Google Cloud Storage 'অলওয়েজ ফ্রি' টায়ারের সুবিধা নিতে পারে। অন্য সব লোকেশনের বাকেটগুলো Google Cloud Storage মূল্য এবং ব্যবহারবিধি অনুসরণ করে।আপনি চাইলে পরে একাধিক বাকেট তৈরি করতে পারেন, যার প্রত্যেকটির নিজস্ব অবস্থান থাকবে।
আপনার ডিফল্ট বাকেটের জন্য Firebase Security Rules কনফিগার করুন। ডেভেলপমেন্টের সময়, পাবলিক অ্যাক্সেসের জন্য আপনার নিয়মগুলো সেট আপ করার কথা বিবেচনা করুন।
সম্পন্ন ক্লিক করুন।
আপনি এখন Firebase কনসোলের Cloud Storage ফাইলস ট্যাবে বাকেটটি দেখতে পারবেন। আপনার ডিফল্ট বাকেট নামের ফরম্যাটটি হলোPROJECT_ID .firebasestorage.app .
সর্বসাধারণের প্রবেশাধিকার স্থাপন করুন
Firebase-এর জন্য Cloud Storage একটি ডিক্লারেটিভ রুলস ল্যাঙ্গুয়েজ প্রদান করে, যা আপনাকে নির্ধারণ করতে দেয় যে আপনার ডেটা কীভাবে সাজানো হবে, কীভাবে ইনডেক্স করা হবে এবং কখন আপনার ডেটা থেকে পড়া ও লেখা যাবে। ডিফল্টরূপে, Cloud Storage-এ পড়া ও লেখার অ্যাক্সেস সীমাবদ্ধ থাকে, ফলে শুধুমাত্র অথেনটিকেটেড ব্যবহারকারীরাই ডেটা পড়তে বা লিখতে পারেন। Firebase Authentication সেট আপ না করেই কাজ শুরু করতে, আপনি পাবলিক অ্যাক্সেসের জন্য আপনার নিয়মগুলো কনফিগার করতে পারেন।
এর ফলে ক্লাউড স্টোরেজ যে কারও জন্য উন্মুক্ত হয়ে যায়, এমনকি যারা আপনার অ্যাপ ব্যবহার করছেন না তাদের জন্যও। তাই, অথেনটিকেশন সেট আপ করার সময় আপনার ক্লাউড স্টোরেজ পুনরায় সীমাবদ্ধ করতে ভুলবেন না।
আপনার অ্যাপে ক্লাউড স্টোরেজ SDK যোগ করুন
আপনার ফ্লাটার প্রজেক্টের রুট থেকে প্লাগইনটি ইনস্টল করতে নিম্নলিখিত কমান্ডটি চালান:
flutter pub add firebase_storageএকবার সম্পন্ন হলে, আপনার ফ্লাটার অ্যাপ্লিকেশনটি পুনর্নির্মাণ করুন:
flutter runআপনার ডার্ট কোডে প্লাগইনটি ইম্পোর্ট করুন:
import 'package:firebase_storage/firebase_storage.dart';
ক্লাউড স্টোরেজ সেট আপ করুন
আপনার ফ্লাটার প্রজেক্ট ডিরেক্টরি থেকে
flutterfire configureচালান। এটি আপনার অ্যাপের কোডবেসে থাকা ফায়ারবেস কনফিগারেশন ফাইল (firebase_options.dart) আপডেট করে, যাতে ফাইলটিতে আপনার ডিফল্ট Cloud Storage বাকেটের নামটি যুক্ত হয়।FirebaseStorageএর একটি ইনস্ট্যান্স তৈরি করে আপনার ক্লাউড স্টোরেজ বাকেট অ্যাক্সেস করুন:final storage = FirebaseStorage.instance; // Alternatively, explicitly specify the bucket name URL. // final storage = FirebaseStorage.instanceFor(bucket: "gs://<var>BUCKET_NAME</var>");
আপনি ক্লাউড স্টোরেজ ব্যবহার শুরু করার জন্য প্রস্তুত!
পরবর্তী পদক্ষেপ? ক্লাউড স্টোরেজ রেফারেন্স তৈরি করার পদ্ধতি জেনে নিন।
উন্নত সেটআপ
কিছু ব্যবহারের ক্ষেত্র রয়েছে যেগুলোর জন্য অতিরিক্ত সেটআপের প্রয়োজন হয়:
- একাধিক ভৌগোলিক অঞ্চলে ক্লাউড স্টোরেজ বাকেট ব্যবহার করা
- বিভিন্ন স্টোরেজ ক্লাসে ক্লাউড স্টোরেজ বাকেট ব্যবহার করা
- একই অ্যাপে একাধিক প্রমাণীকৃত ব্যবহারকারীর সাথে ক্লাউড স্টোরেজ বাকেট ব্যবহার করা
আপনার যদি বিশ্বজুড়ে ব্যবহারকারী থাকে এবং আপনি তাদের ডেটা তাদের কাছাকাছি সংরক্ষণ করতে চান, তাহলে প্রথম ব্যবহারটি একদম উপযুক্ত। উদাহরণস্বরূপ, ল্যাটেন্সি কমানোর জন্য আপনি মার্কিন যুক্তরাষ্ট্র, ইউরোপ এবং এশিয়ায় বাকেট তৈরি করে সেই অঞ্চলের ব্যবহারকারীদের ডেটা সংরক্ষণ করতে পারেন।
দ্বিতীয় ব্যবহারটি তখন সহায়ক হয়, যখন আপনার কাছে বিভিন্ন অ্যাক্সেস প্যাটার্নের ডেটা থাকে। উদাহরণস্বরূপ: আপনি একটি মাল্টি-রিজিওনাল বা রিজিওনাল বাকেট সেট আপ করতে পারেন যা ছবি বা অন্যান্য ঘন ঘন অ্যাক্সেস করা কন্টেন্ট সংরক্ষণ করে, এবং একটি নিয়ারলাইন বা কোল্ডলাইন বাকেট সেট আপ করতে পারেন যা ব্যবহারকারীর ব্যাকআপ বা অন্যান্য কদাচিৎ অ্যাক্সেস করা কন্টেন্ট সংরক্ষণ করে।
এই উভয় ব্যবহারের ক্ষেত্রেই, আপনার একাধিক ক্লাউড স্টোরেজ বাকেট ব্যবহার করার প্রয়োজন হবে।
তৃতীয় ব্যবহারটি তখন কাজে আসে যখন আপনি গুগল ড্রাইভের মতো এমন কোনো অ্যাপ তৈরি করছেন, যা ব্যবহারকারীদের একাধিক লগ-ইন করা অ্যাকাউন্ট (যেমন, একটি ব্যক্তিগত অ্যাকাউন্ট এবং একটি কর্মক্ষেত্রের অ্যাকাউন্ট) রাখার সুযোগ দেয়। প্রতিটি অতিরিক্ত অ্যাকাউন্ট প্রমাণীকরণের জন্য আপনি একটি কাস্টম ফায়ারবেস অ্যাপ ইনস্ট্যান্স ব্যবহার করতে পারেন।
একাধিক ক্লাউড স্টোরেজ বাকেট ব্যবহার করুন
আপনি যদি উপরে দেওয়া ডিফল্ট বাকেটটি ছাড়া অন্য কোনো ক্লাউড স্টোরেজ বাকেট ব্যবহার করতে চান, অথবা একটি অ্যাপে একাধিক ক্লাউড স্টোরেজ বাকেট ব্যবহার করতে চান, তাহলে আপনি FirebaseStorage এর এমন একটি ইনস্ট্যান্স তৈরি করতে পারেন যা আপনার কাস্টম বাকেটটিকে রেফারেন্স করবে:
// Get a non-default Storage bucket
final storage = FirebaseStorage.instanceFor(bucket: "gs://my-custom-bucket");
আমদানিকৃত বাকেটগুলির সাথে কাজ করা
ফায়ারবেসে বিদ্যমান কোনো ক্লাউড স্টোরেজ বাকেট ইম্পোর্ট করার সময়, আপনাকে গুগল ক্লাউড এসডিকে -তে অন্তর্ভুক্ত gsutil টুলটি ব্যবহার করে ফায়ারবেসকে এই ফাইলগুলি অ্যাক্সেস করার অনুমতি দিতে হবে।
gsutil -m acl ch -r -u service-PROJECT_NUMBER@gcp-sa-firebasestorage.iam.gserviceaccount.com gs://YOUR-CLOUD-STORAGE-BUCKET
ফায়ারবেস প্রজেক্টের পরিচিতিতে বর্ণিত পদ্ধতি অনুসরণ করে আপনি আপনার প্রজেক্ট নম্বরটি খুঁজে নিতে পারেন।
এটি নতুন তৈরি করা বাকেটগুলিকে প্রভাবিত করে না, কারণ সেগুলিতে ডিফল্ট অ্যাক্সেস কন্ট্রোল ফায়ারবেসকে অনুমতি দেওয়ার জন্য সেট করা থাকে। এটি একটি অস্থায়ী ব্যবস্থা, এবং ভবিষ্যতে এটি স্বয়ংক্রিয়ভাবে কার্যকর করা হবে।
একটি কাস্টম ফায়ারবেস অ্যাপ ব্যবহার করুন
আপনি যদি একটি কাস্টম FirebaseApp ব্যবহার করে আরও জটিল কোনো অ্যাপ তৈরি করেন, তাহলে আপনি সেই অ্যাপটি দিয়ে ইনিশিয়ালাইজ করা FirebaseStorage এর একটি ইনস্ট্যান্স তৈরি করতে পারেন:
// Use a non-default App
final storage = FirebaseStorage.instanceFor(app: customApp);
পরবর্তী পদক্ষেপ
- আপনার অ্যাপটি চালু করার জন্য প্রস্তুত হন:
- শুধুমাত্র আপনার অ্যাপগুলোই যেন আপনার স্টোরেজ বাকেটগুলো অ্যাক্সেস করতে পারে, তা নিশ্চিত করতে অ্যাপ চেক সক্ষম করুন।
- গুগল ক্লাউড কনসোলে আপনার প্রোজেক্টের জন্য বাজেট অ্যালার্ট সেট আপ করুন।
- আপনার প্রোজেক্টের একাধিক ফায়ারবেস পরিষেবা জুড়ে ব্যবহারের একটি সামগ্রিক চিত্র পেতে ফায়ারবেস কনসোলে থাকা ব্যবহার এবং বিলিং ড্যাশবোর্ডটি পর্যবেক্ষণ করুন। আরও বিস্তারিত ব্যবহারের তথ্যের জন্য আপনি ক্লাউড স্টোরেজ ব্যবহার ড্যাশবোর্ডটিও দেখতে পারেন।
- ফায়ারবেস লঞ্চ চেকলিস্টটি পর্যালোচনা করুন।