Apple প্ল্যাটফর্মে Cloud Storage ব্যবহার করা শুরু করা

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

শুরু করার আগে

  1. আপনি আগে থেকে না করে থাকলে, নিশ্চিত করুন যে আপনি Apple প্ল্যাটফর্ম অ্যাপের জন্য শুরু করার নির্দেশিকা সম্পূর্ণ করেছেন। এর মধ্যে পড়ে:

    • Firebase প্রোজেক্ট তৈরি করা।

    • প্রোজেক্টের সাথে আপনার Apple প্ল্যাটফর্ম অ্যাপ রেজিস্টার করা, এবং Firebase লাইব্রেরি ও আপনার অ্যাপে Firebase কনফিগারেশন ফাইল (GoogleService-Info.plist) যোগ করার মাধ্যমে আপনার অ্যাপকে Firebase-এর সাথে কানেক্ট করা।

  2. আপনার 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-এর অ্যাক্সেস আবার সীমাবদ্ধ করতে ভুলবেন না।

আপনার অ্যাপে Cloud Storage যোগ করা

Firebase ডিপেন্ডেন্সি ইনস্টল ও ম্যানেজ করতে Swift Package Manager ব্যবহার করুন।

  1. Xcode-এ, আপনার অ্যাপ প্রোজেক্ট খোলা থাকা অবস্থায়, ফাইল > প্যাকেজ যোগ করুন বিকল্পে নেভিগেট করুন।
  2. প্রম্পট করা হলে, Firebase Apple প্ল্যাটফর্ম SDK রিপোজিটরি যোগ করুন:
  3.   https://github.com/firebase/firebase-ios-sdk.git
  4. Cloud Storage লাইব্রেরি বেছে নিন।
  5. আপনার টার্গেটের বিল্ড সেটিংসের অন্যান্য লিঙ্কার ফ্ল্যাগ বিভাগে -ObjC ফ্ল্যাগ যোগ করুন।
  6. এটি সম্পূর্ণ হয়ে গেলে, Xcode অটোমেটিক আপনার ডিপেন্ডেন্সি ব্যাকগ্রাউন্ডে সমাধান ও ডাউনলোড করা শুরু করবে।

আপনার অ্যাপে Cloud Storage সেট-আপ করা

  1. Firebase রেফারেন্স তৈরি বা ব্যবহার করার আগে Firebase ইনিশিয়ালাইজ করুন।

    আপনি যদি ইতিমধ্যেই অন্য Firebase প্রোডাক্ট সেট-আপ করে থাকেন, তাহলে আপনি হয়ত এটি আগেই করেছেন, তবে আপনাকে নিশ্চিত করতে হবে যে আপনার ইমপোর্ট করা আইটেমের তালিকায় FirebaseStorage লাইব্রেরি যোগ করেছেন।

    1. আপনার UIApplicationDelegate-এ FirebaseCore মডিউল ও FirebaseStorage মডিউল ইমপোর্ট করুন। এছাড়াও, আমরা FirebaseAuth যোগ করার সাজেশন দিই।

      SwiftUI

      import SwiftUI
      import FirebaseCore
      import FirebaseStorage
      import FirebaseAuth
      // ...
      

      Swift

      import FirebaseCore
      import FirebaseStorage
      import FirebaseAuth
      // ...
      

      Objective-C

      @import FirebaseCore;
      @import FirebaseStorage;
      @import FirebaseAuth;
      // ...
      
    2. আপনার অ্যাপ ডেলিগেটের application(_:didFinishLaunchingWithOptions:) পদ্ধতিতে FirebaseApp শেয়ার করা ইনস্ট্যান্স কনফিগার করুন:

      SwiftUI

      // Use Firebase library to configure APIs
      FirebaseApp.configure()
      

      Swift

      // Use Firebase library to configure APIs
      FirebaseApp.configure()
      

      Objective-C

      // Use Firebase library to configure APIs
      [FIRApp configure];
      
    3. (শুধুমাত্র SwiftUI) একটি অ্যাপ্লিকেশন ডেলিগেট তৈরি করুন এবং এটিকে আপনার App struct-এর সাথে UIApplicationDelegateAdaptor বা NSApplicationDelegateAdaptor ব্যবহার করে অ্যাটাচ করুন। এছাড়াও, আপনাকে অবশ্যই অ্যাপ ডেলিগেট সুইজলিং বন্ধ করতে হবে। আরও তথ্যের জন্য, SwiftUI নির্দেশাবলী দেখুন।

      SwiftUI

      @main
      struct YourApp: App {
        // Register app delegate for Firebase setup
        @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate
      
        var body: some Scene {
          WindowGroup {
            NavigationView {
              ContentView()
            }
          }
        }
      }
      
  2. ডিফল্ট Firebase অ্যাপ ব্যবহার করে Cloud Storage পরিষেবার রেফারেন্স পান।

    1. আপনার অ্যাপের কোডবেসে Firebase কনফিগারেশন ফাইল (GoogleService-Info.plist) যেন আপনার ডিফল্ট Cloud Storage বাকেটের নাম দিয়ে আপডেট করা থাকে তা নিশ্চিত করুন।

      1. আপনার আপডেট করা কনফিগ ফাইল পান।.

      2. আপনার Xcode প্রোজেক্টের রুটে আগে থেকে থাকা GoogleService-Info.plist ফাইল পরিবর্তন করতে এই ডাউনলোড করা কনফিগারেশন ফাইল ব্যবহার করুন। প্রম্পট করা হলে, সব টার্গেটে কনফিগারেশন ফাইল যোগ করার বিকল্প বেছে নিন।

        আপনার অ্যাপে যেন শুধু এই সবচেয়ে সাম্প্রতিক ডাউনলোড করা কনফিগারেশন ফাইল থাকে এবং এর ফাইলের নামে যেন অতিরিক্ত ক্যারেক্টার যোগ করা না থাকে, যেমন (2)।

      ডেটাবেস ও স্টোরেজ > স্টোরেজ > ফাইল ট্যাবে বাকেটের নাম খুঁজে পাবেন।
    2. ডিফল্ট Firebase অ্যাপ ব্যবহার করে Cloud Storage পরিষেবার রেফারেন্স পান:

      Swift

      let storage = Storage.storage()
      // Alternatively, explicitly specify the bucket name URL.
      storage = Storage.storage(url:"gs://BUCKET_NAME")

      Objective-C

      FIRStorage *storage = [FIRStorage storage];
      // Alternatively, explicitly specify the bucket name URL.
      // FIRStorage storage = [FIRStorage storageWithURL:@"gs://BUCKET_NAME"];

আপনি Cloud Storage ব্যবহার করা শুরু করার জন্য প্রস্তুত!

পরবর্তী ধাপ? কীভাবে Cloud Storage রেফারেন্স তৈরি করতে হয় তা জানুন।

উন্নত সেট-আপ

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

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

আপনার কাছে যদি আলাদা আলাদা অ্যাক্সেস প্যাটার্ন সহ ডেটা থাকে, তাহলে দ্বিতীয় ব্যবহারের ক্ষেত্রে এটি সহায়ক হবে। যেমন: আপনি মাল্টি-রিজিওনাল বা রিজিওনাল বাকেট সেট-আপ করতে পারেন যা ছবি বা প্রায়শই অ্যাক্সেস করা কন্টেন্ট স্টোর করে এবং একটি নিয়ারলাইন বা কোল্ডলাইন বাকেট যা ব্যবহারকারীর ব্যাক-আপ বা অন্যান্য কন্টেন্ট স্টোর করে যা প্রায়শই অ্যাক্সেস করা হয় না।

এইসব ব্যবহারের ক্ষেত্রে, আপনাকে একাধিক Cloud Storage বাকেট ব্যবহার করতে হবে।

আপনি যদি Google Drive-এর মতো কোনও অ্যাপ তৈরি করেন, তাহলে থার্ড-পার্টি ব্যবহার করা আপনার পক্ষে সহায়ক হবে, যা ব্যবহারকারীদের একাধিক অ্যাকাউন্টে লগ-ইন করতে দেয় (যেমন, ব্যক্তিগত অ্যাকাউন্ট ও অফিসের অ্যাকাউন্ট)। আপনি প্রতিটি অতিরিক্ত অ্যাকাউন্ট যাচাই করতে কাস্টম Firebase অ্যাপ ইনস্ট্যান্স ব্যবহার করতে পারবেন।

একাধিক Cloud Storage বাকেট ব্যবহার করা

আপনি যদি উপরে দেওয়া ডিফল্ট Cloud Storage বাকেট ছাড়া অন্য কোনও বাকেট ব্যবহার করতে চান, অথবা একটি অ্যাপে একাধিক Cloud Storage বাকেট ব্যবহার করতে চান, তাহলে আপনি FIRStorage-এর এমন একটি ইনস্ট্যান্স তৈরি করতে পারবেন যা আপনার কাস্টম বাকেটকে রেফার করে:

Swift

// Get a non-default Cloud Storage bucket
storage = Storage.storage(url:"gs://my-custom-bucket")
    

Objective-C

// Get a non-default Cloud Storage bucket
FIRStorage storage = [FIRStorage storageWithURL:@"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 অ্যাপ ব্যবহার করা

আপনি কাস্টম FirebaseApp ব্যবহার করে আরও জটিল অ্যাপ তৈরি করলে, সেই অ্যাপ দিয়ে ইনিশিয়ালাইজ করা Storage-এর ইনস্ট্যান্স তৈরি করতে পারবেন:

Swift

// Get the default bucket from a custom FirebaseApp
storage = Storage.storage(app:customApp)

// Get a non-default bucket from a custom FirebaseApp
storage = Storage.storage(app:customApp, url:"gs://my-custom-bucket")
    

Objective-C

// Get the default bucket from a custom FIRApp
FIRStorage storage = [FIRStorage storageForApp:customApp];

// Get a non-default bucket from a custom FIRApp
FIRStorage storage = [FIRStorage storageForApp:customApp withURL:@"gs://my-custom-bucket"];
    

পরবর্তী ধাপ

  • আপনার অ্যাপ লঞ্চ করার জন্য প্রস্তুত হন: