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
JNI এনভায়রনমেন্ট এবং Java অ্যাক্টিভিটির jobject
রেফারেন্স আর্গুমেন্ট হিসেবে পাস করে firebase::App তৈরি করুন:
app = App::Create(AppOptions(), jni_env, activity);
iOS+
firebase::App তৈরি করুন:
app = App::Create(AppOptions());
firebase::storage::Storage ক্লাসে অ্যাক্সেস করা
Cloud Storage C++ SDK-এর এন্ট্রি পয়েন্ট হল firebase::storage::Storage
ক্লাস।
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 বাকেট ইমপোর্ট করার সময়, আপনাকে Firebase-কে
Google Cloud SDK-এ অন্তর্ভুক্ত
gsutil টুল ব্যবহার করে এইসব ফাইল অ্যাক্সেস করার অনুমতি দিতে হবে:
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 লঞ্চ চেকলিস্ট পর্যালোচনা করুন।