Check out what’s new from Firebase at Google I/O 2022. Learn more

C++ এর জন্য ক্লাউড স্টোরেজ দিয়ে শুরু করুন

ফায়ারবেসের জন্য ক্লাউড স্টোরেজ আপনাকে ব্যবহারকারীর তৈরি সামগ্রী আপলোড এবং শেয়ার করতে দেয়, যেমন ছবি এবং ভিডিও, যা আপনাকে আপনার অ্যাপগুলিতে সমৃদ্ধ মিডিয়া সামগ্রী তৈরি করতে দেয়৷ আপনার ডেটা একটি Google ক্লাউড স্টোরেজ বালতিতে সংরক্ষণ করা হয় — উচ্চ প্রাপ্যতা এবং বিশ্বব্যাপী অপ্রয়োজনীয়তা সহ একটি এক্সাবাইট স্কেল অবজেক্ট স্টোরেজ সমাধান৷ ফায়ারবেসের জন্য ক্লাউড স্টোরেজ আপনাকে এই ফাইলগুলিকে সরাসরি মোবাইল ডিভাইস এবং ওয়েব ব্রাউজার থেকে নিরাপদে আপলোড করতে দেয়, দাগযুক্ত নেটওয়ার্কগুলি সহজে পরিচালনা করতে পারে।

তুমি শুরু করার আগে

আপনি ক্লাউড স্টোরেজ ব্যবহার করার আগে, আপনাকে করতে হবে:

  • আপনার C++ প্রজেক্ট নিবন্ধন করুন এবং Firebase ব্যবহার করতে কনফিগার করুন।

    যদি আপনার C++ প্রোজেক্ট ইতিমধ্যেই Firebase ব্যবহার করে, তাহলে এটি ইতিমধ্যেই Firebase-এর জন্য নিবন্ধিত এবং কনফিগার করা আছে।

  • আপনার C++ প্রকল্পে Firebase C++ SDK যোগ করুন।

মনে রাখবেন যে আপনার C++ প্রোজেক্টে Firebase যোগ করার জন্য Firebase কনসোল এবং আপনার খোলা C++ প্রজেক্টের উভয় কাজ জড়িত থাকে (উদাহরণস্বরূপ, আপনি কনসোল থেকে Firebase কনফিগার ফাইলগুলি ডাউনলোড করেন, তারপর সেগুলিকে আপনার C++ প্রকল্পে নিয়ে যান)।

একটি ডিফল্ট ক্লাউড স্টোরেজ বালতি তৈরি করুন

  1. Firebase কনসোলের নেভিগেশন ফলক থেকে, স্টোরেজ নির্বাচন করুন, তারপর শুরু করুন ক্লিক করুন

  2. নিরাপত্তা নিয়ম ব্যবহার করে আপনার ক্লাউড স্টোরেজ ডেটা সুরক্ষিত করার বিষয়ে মেসেজিং পর্যালোচনা করুন। বিকাশের সময়, সর্বজনীন অ্যাক্সেসের জন্য আপনার নিয়মগুলি সেট আপ করার কথা বিবেচনা করুন৷

  3. আপনার ডিফল্ট ক্লাউড স্টোরেজ বাকেটের জন্য একটি অবস্থান নির্বাচন করুন।

    • এই লোকেশন সেটিং হল আপনার প্রোজেক্টের ডিফল্ট Google ক্লাউড প্ল্যাটফর্ম (GCP) রিসোর্স লোকেশন । মনে রাখবেন যে এই অবস্থানটি আপনার প্রকল্পের GCP পরিষেবাগুলির জন্য ব্যবহার করা হবে যার জন্য একটি অবস্থান সেটিং প্রয়োজন, বিশেষত, আপনার ক্লাউড ফায়ারস্টোর ডাটাবেস এবং আপনার অ্যাপ ইঞ্জিন অ্যাপ (যা আপনি ক্লাউড শিডিউলার ব্যবহার করলে প্রয়োজন হয়)৷

    • যদি আপনি একটি অবস্থান নির্বাচন করতে সক্ষম না হন, তাহলে আপনার প্রকল্পে ইতিমধ্যেই একটি ডিফল্ট GCP সংস্থান অবস্থান রয়েছে৷ এটি প্রকল্প তৈরির সময় বা অন্য পরিষেবা সেট আপ করার সময় সেট করা হয়েছিল যার জন্য একটি অবস্থান সেটিং প্রয়োজন৷

    আপনি যদি ব্লেজ প্ল্যানে থাকেন, আপনি একাধিক বালতি তৈরি করতে পারেন, প্রতিটির নিজস্ব অবস্থান

  4. সম্পন্ন ক্লিক করুন.

পাবলিক অ্যাক্সেস সেট আপ করুন

ফায়ারবেসের জন্য ক্লাউড স্টোরেজ একটি ঘোষণামূলক নিয়মের ভাষা প্রদান করে যা আপনাকে আপনার ডেটা কীভাবে কাঠামোগত করা উচিত, কীভাবে এটি সূচীকরণ করা উচিত এবং কখন আপনার ডেটা থেকে পড়া এবং লেখা যেতে পারে তা নির্ধারণ করতে দেয়। ডিফল্টরূপে, ক্লাউড স্টোরেজ পড়ার এবং লেখার অ্যাক্সেস সীমাবদ্ধ তাই শুধুমাত্র প্রমাণীকৃত ব্যবহারকারীরা ডেটা পড়তে বা লিখতে পারে। প্রমাণীকরণ সেট আপ না করেই শুরু করতে, আপনি সর্বজনীন অ্যাক্সেসের জন্য আপনার নিয়মগুলি কনফিগার করতে পারেন৷

এটি ক্লাউড স্টোরেজ যে কারো জন্য উন্মুক্ত করে দেয়, এমনকি লোকেরাও আপনার অ্যাপ ব্যবহার করে না, তাই আপনি প্রমাণীকরণ সেট আপ করার সময় আবার আপনার ক্লাউড স্টোরেজ সীমাবদ্ধ করতে ভুলবেন না।

firebase::App

আপনি ক্লাউড স্টোরেজ অ্যাক্সেস করার আগে, আপনাকে firebase::App তৈরি এবং শুরু করতে হবে।

firebase::App জন্য হেডার ফাইলটি অন্তর্ভুক্ত করুন:

#include "firebase/app.h"

অ্যান্ড্রয়েড

firebase::App তৈরি করুন, JNI এনভায়রনমেন্ট পাস করা এবং আর্গুমেন্ট হিসাবে জাভা অ্যাক্টিভিটির একটি jobject রেফারেন্স:

app = App::Create(AppOptions(), jni_env, activity);

iOS+

firebase::App :

app = App::Create(AppOptions());

firebase::storage::Storage ক্লাস অ্যাক্সেস করুন

firebase::storage::Storage ক্লাস হল ক্লাউড স্টোরেজ C++ SDK-এর এন্ট্রি পয়েন্ট।

Storage* storage = Storage::GetInstance(app);

আপনি ক্লাউড স্টোরেজ ব্যবহার শুরু করতে প্রস্তুত!

প্রথমে, আসুন শিখি কিভাবে একটি ক্লাউড স্টোরেজ রেফারেন্স তৈরি করতে হয়।

উন্নত সেটআপ

কিছু ব্যবহারের ক্ষেত্রে অতিরিক্ত সেটআপ প্রয়োজন:

আপনার যদি সারা বিশ্বে ব্যবহারকারী থাকে এবং তাদের কাছে তাদের ডেটা সংরক্ষণ করতে চান তবে প্রথম ব্যবহারের ক্ষেত্রে উপযুক্ত। উদাহরণস্বরূপ, আপনি ইউএস, ইউরোপ এবং এশিয়াতে লেটেন্সি কমাতে সেই অঞ্চলের ব্যবহারকারীদের জন্য ডেটা সঞ্চয় করার জন্য বালতি তৈরি করতে পারেন।

আপনার কাছে ভিন্ন অ্যাক্সেস প্যাটার্ন সহ ডেটা থাকলে দ্বিতীয় ব্যবহারের ক্ষেত্রে সহায়ক। উদাহরণস্বরূপ: আপনি একটি বহু-আঞ্চলিক বা আঞ্চলিক বালতি সেট আপ করতে পারেন যা ছবি বা অন্যান্য ঘন ঘন অ্যাক্সেস করা সামগ্রী সংরক্ষণ করে এবং একটি নিয়ারলাইন বা কোল্ডলাইন বাকেট যা ব্যবহারকারীর ব্যাকআপ বা অন্যান্য কদাচিৎ অ্যাক্সেস করা সামগ্রী সংরক্ষণ করে।

এই দুটি ব্যবহারের ক্ষেত্রে, আপনি একাধিক ক্লাউড স্টোরেজ বালতি ব্যবহার করতে চাইবেন।

আপনি যদি গুগল ড্রাইভের মতো একটি অ্যাপ তৈরি করেন তবে তৃতীয় ব্যবহারের ক্ষেত্রে উপযোগী হয়, যা ব্যবহারকারীদের একাধিক লগইন অ্যাকাউন্ট (উদাহরণস্বরূপ, একটি ব্যক্তিগত অ্যাকাউন্ট এবং একটি কাজের অ্যাকাউন্ট) করতে দেয়। প্রতিটি অতিরিক্ত অ্যাকাউন্ট প্রমাণীকরণ করতে আপনি একটি কাস্টম ফায়ারবেস অ্যাপ উদাহরণ ব্যবহার করতে পারেন।

একাধিক ক্লাউড স্টোরেজ বালতি ব্যবহার করুন

আপনি যদি উপরে প্রদত্ত ডিফল্ট ব্যতীত একটি ক্লাউড স্টোরেজ বালতি ব্যবহার করতে চান বা একটি একক অ্যাপে একাধিক ক্লাউড স্টোরেজ বালতি ব্যবহার করতে চান, তাহলে আপনি firebase::storage::Storage উল্লেখ করে:

// Get a non-default Cloud Storage bucket
Storage* storage = Storage::GetInstance("gs://my-custom-bucket");

আমদানি করা বালতি নিয়ে কাজ করা

একটি বিদ্যমান ক্লাউড স্টোরেজ বালতি Firebase-এ আমদানি করার সময়, Google Cloud SDK- এ অন্তর্ভুক্ত gsutil টুল ব্যবহার করে এই ফাইলগুলি অ্যাক্সেস করার ক্ষমতা Firebase-কে দিতে হবে:

gsutil -m acl ch -r -u service-<project number>@gcp-sa-firebasestorage.iam.gserviceaccount.com gs://<your-cloud-storage-bucket>

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

পরবর্তী পদক্ষেপ