Cloud Storage for Firebase আপনাকে ছবি, অডিও, ভিডিও এবং অন্যান্য ফাইলের (ব্যবহারকারীর তৈরি করা কন্টেন্ট সহ) মতো কন্টেন্ট আপলোড এবং শেয়ার করতে দেয়, যা আপনাকে আপনার অ্যাপে রিচ মিডিয়া কন্টেন্ট তৈরি করতে দেয়। আপনার ডেটা Google Cloud Storage বাকেটে স্টোর করা হয় — এটি হল এক্সাবাইট স্কেল অবজেক্ট স্টোরেজ সলিউশন যা অত্যন্ত সহজলভ্য এবং বিশ্বব্যাপী রিডানডেন্সি প্রদান করে। Cloud Storage for Firebase আপনাকে সরাসরি মোবাইল ডিভাইস এবং ওয়েব ব্রাউজার থেকে নিরাপদে এই ফাইলগুলি আপলোড করতে দেয়, নেটওয়ার্কের সমস্যা থাকলেও সহজে আপলোড করা যায়।
শুরু করার আগে
Cloud Storage ব্যবহার করার আগে, আপনাকে যা করতে হবে:
আপনার C++ প্রোজেক্ট রেজিস্টার করুন এবং Firebase ব্যবহার করার জন্য এটি কনফিগার করুন।
আপনার C++ প্রোজেক্ট আগে থেকেই Firebase ব্যবহার করলে, এটি আগে থেকেই রেজিস্টার করা আছে এবং Firebase-এর জন্য কনফিগার করা আছে।
আপনার C++ প্রোজেক্টে Firebase C++ SDK যোগ করুন।
মনে রাখবেন, আপনার C++ প্রোজেক্টে Firebase যোগ করার জন্য Firebase কনসোল এবং আপনার খোলা C++ প্রোজেক্ট (যেমন, আপনি কনসোল থেকে Firebase কনফিগারেশন ফাইল ডাউনলোড করেন, তারপর সেগুলি আপনার C++ প্রোজেক্টে সরান) দুটিতেই কাজ করতে হয়।
এছাড়াও, আপনার 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 আবার সীমাবদ্ধ করতে ভুলবেন না।
firebase::App তৈরি ও ইনিশিয়ালাইজ করুন
Cloud Storage অ্যাক্সেস করার আগে, আপনাকে firebase::App তৈরি ও
ইনিশিয়ালাইজ করতে হবে।
firebase::App-এর জন্য হেডার ফাইল অন্তর্ভুক্ত করুন:
#include "firebase/app.h"
Android
firebase::App তৈরি করুন, JNI এনভায়রনমেন্ট এবং জাভা অ্যাক্টিভিটির jobject
রেফারেন্স আর্গুমেন্ট হিসেবে পাস করুন:
app = App::Create(AppOptions(), jni_env, activity);
iOS+
firebase::App তৈরি করুন:
app = App::Create(AppOptions());
firebase::storage::Storage ক্লাস অ্যাক্সেস করুন
firebase::storage::Storage
ক্লাস হল Cloud Storage C++ SDK-এর এন্ট্রি পয়েন্ট।
Storage* storage = Storage::GetInstance(app);
আপনি Cloud Storage ব্যবহার করা শুরু করার জন্য রেডি!
পরবর্তী ধাপ? কীভাবে Cloud Storage রেফারেন্স তৈরি করবেন তা জানুন।
উন্নত সেট-আপ
কিছু ব্যবহারের ক্ষেত্রে অতিরিক্ত সেট-আপ প্রয়োজন:
- একাধিক ভৌগোলিক অঞ্চলে Cloud Storageটি বাকেট ব্যবহার করা হচ্ছে
- বিভিন্ন স্টোরেজ ক্লাসে Cloud Storageটি বাকেট ব্যবহার করা হচ্ছে
- একই অ্যাপে একাধিক যাচাই করা ব্যবহারকারীর সাথে Cloud Storageটি বাকেট ব্যবহার করা হচ্ছে
আপনার ব্যবহারকারী সারা বিশ্ব জুড়ে থাকলে এবং তাদের ডেটা তাদের কাছাকাছি স্টোর করতে চাইলে, প্রথম ব্যবহারের কেসটি উপযুক্ত। যেমন, আপনি মার্কিন যুক্তরাষ্ট্র, ইউরোপ ও এশিয়ায় বাকেট তৈরি করতে পারেন যাতে সেইসব অঞ্চলের ব্যবহারকারীদের ডেটা স্টোর করা যায় এবং লেটেন্সি কমানো যায়।
আপনার কাছে বিভিন্ন অ্যাক্সেস প্যাটার্ন সহ ডেটা থাকলে, দ্বিতীয় ব্যবহারের ক্ষেত্রে তা সহায়ক হয়। যেমন: আপনি মাল্টি-রিজিয়নাল বা রিজিয়নাল বাকেট সেট-আপ করতে পারেন যা ছবি বা অন্যান্য প্রায়শই অ্যাক্সেস করা কন্টেন্ট স্টোর করে এবং একটি নিয়ারলাইন বা কোল্ডলাইন বাকেট যা ব্যবহারকারীর ব্যাক-আপ বা অন্যান্য কদাচিৎ অ্যাক্সেস করা কন্টেন্ট স্টোর করে।
এইসব ব্যবহারের ক্ষেত্রে, আপনি একাধিক Cloud Storage বাকেট ব্যবহার করতে চাইবেন।
তৃতীয় ব্যবহারের ক্ষেত্রটি তখন উপযোগী হয় যখন আপনি Google Drive-এর মতো কোনও অ্যাপ তৈরি করছেন, যেখানে ব্যবহারকারী একাধিক অ্যাকাউন্টে লগ-ইন করে থাকতে পারেন (যেমন, ব্যক্তিগত অ্যাকাউন্ট এবং অফিসের অ্যাকাউন্ট)। প্রতিটি অতিরিক্ত অ্যাকাউন্ট যাচাই করতে আপনি কাস্টম Firebase অ্যাপ ইনস্ট্যান্স ব্যবহার করতে পারবেন।
একাধিক Cloud Storage বাকেট ব্যবহার করা
আপনি যদি উপরে দেওয়া ডিফল্ট বাকেট ছাড়া অন্য কোনও Cloud Storage বাকেট ব্যবহার করতে চান,
অথবা একটি অ্যাপে একাধিক Cloud Storage বাকেট ব্যবহার করতে চান, তাহলে আপনি firebase::storage::Storage-এর একটি ইনস্ট্যান্স
তৈরি করতে পারেন যা আপনার কাস্টম বাকেটকে রেফারেন্স করে:
// Get a non-default Cloud Storage bucket Storage* storage = Storage::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 অ্যাপ ব্যবহার করুন
আপনি যদি কাস্টম firebase::App ব্যবহার করে আরও জটিল অ্যাপ তৈরি করেন, তাহলে
আপনি সেই অ্যাপের মাধ্যমে শুরু করা firebase::storage::Storage-এর একটি ইনস্ট্যান্স তৈরি করতে
পারবেন:
// Get the default bucket from a custom firebase::App Storage* storage = Storage::GetInstance(customApp); // Get a non-default bucket from a custom firebase::App Storage* storage = Storage::GetInstance(customApp, "gs://my-custom-bucket");
পরবর্তী ধাপ
আপনার অ্যাপ লঞ্চ করার জন্য প্রস্তুত হন:
- Google Cloud কনসোলে আপনার প্রোজেক্টের জন্য বাজেট সংক্রান্ত সতর্কতা সেট-আপ করুন।
- Firebase কনসোলে ব্যবহার ও বিলিং ড্যাশবোর্ড মনিটর করুন যাতে একাধিক Firebase পরিষেবা জুড়ে আপনার প্রোজেক্টের ব্যবহারের সামগ্রিক ছবি পেতে পারেন। এছাড়াও, ব্যবহারের তথ্য আরও বিস্তারিতভাবে জানতে আপনি Cloud Storage ব্যবহার ড্যাশবোর্ড দেখতে পারেন।
- Firebase লঞ্চ চেকলিস্ট পর্যালোচনা করুন।