C++-এর জন্য Cloud Storage ব্যবহার করা শুরু করা

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 বাকেট তৈরি করুন

  1. Firebase কনসোলে, ডেটাবেস ও স্টোরেজ > স্টোরেজ বিকল্পে যান।

    আপনার প্রোজেক্ট এখনও 'যখন ব্যবহার করবেন তখন পেমেন্ট করুন' Blaze প্রাইসিং প্ল্যানে না থাকলে, আপনাকে প্রোজেক্ট আপগ্রেড করার জন্য প্রম্পট করা হবে।

  2. শুরু করুন বিকল্পে ক্লিক করুন।

  3. আপনার ডিফল্ট বাকেটের জন্য একটি লোকেশন বেছে নিন।

  4. আপনার ডিফল্ট বাকেটের জন্য Firebase Security Rules কনফিগার করুন। ডেভেলপমেন্টের সময়, সর্বজনীন অ্যাক্সেসের জন্য আপনার নিয়ম সেট-আপ করার কথা বিবেচনা করুন।

  5. হয়ে গেছে বিকল্পে ক্লিক করুন।

আপনি এখন 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 এনভায়রনমেন্ট এবং আর্গুমেন্ট হিসেবে Java অ্যাক্টিভিটির 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 বাকেট ব্যবহার করতে চাইবেন।

আপনি যদি 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 বাকেট ইমপোর্ট করার সময়, আপনাকে gsutil টুল ব্যবহার করে এইসব ফাইল অ্যাক্সেস করার জন্য Firebase-কে অনুমতি দিতে হবে, যা Google Cloud SDK-তে অন্তর্ভুক্ত:

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");

পরবর্তী ধাপ