C++ এর জন্য ক্লাউড স্টোরেজ সহ ফাইল মেটাডেটা ব্যবহার করুন

Cloud Storage রেফারেন্সে একটি ফাইল আপলোড করার পরে, আপনি ফাইল মেটাডেটা পেতে এবং আপডেট করতে পারেন, উদাহরণস্বরূপ কন্টেন্ট টাইপ আপডেট করতে। ফাইলগুলি অতিরিক্ত ফাইল মেটাডেটা সহ কাস্টম কী/মান জোড়াও সংরক্ষণ করতে পারে।

ফাইল মেটাডেটা পান

ফাইল মেটাডেটাতে name , size এবং content_type (প্রায়শই MIME টাইপ হিসাবে উল্লেখ করা হয়) এর মতো সাধারণ বৈশিষ্ট্য রয়েছে, content_disposition এবং time_created মতো কিছু কম সাধারণ বৈশিষ্ট্য ছাড়াও। এই মেটাডেটা GetMetadata পদ্ধতি ব্যবহার করে Cloud Storage রেফারেন্স থেকে পুনরুদ্ধার করা যেতে পারে।

// Create reference to the file whose metadata we want to retrieve
StorageReference forest_ref = storage_ref.Child("images/forest.jpg");

// Get metadata properties
Future future = forest_ref.GetMetadata();

// Wait for Future to complete...

if (future.Error() != firebase::storage::kErrorNone) {
  // Uh-oh, an error occurred!
} else {
  // We can now retrieve the metadata for 'images/forest.jpg'
  Metadata* metadata = future.Result();
}

ফাইল মেটাডেটা আপডেট করুন

ফাইল আপলোড সম্পন্ন হওয়ার পর আপনি UpdateMetadata পদ্ধতি ব্যবহার করে যেকোনো সময় ফাইল মেটাডেটা আপডেট করতে পারেন। কোন বৈশিষ্ট্যগুলি আপডেট করা যেতে পারে সে সম্পর্কে আরও তথ্যের জন্য সম্পূর্ণ তালিকাটি দেখুন। শুধুমাত্র মেটাডেটাতে উল্লেখিত বৈশিষ্ট্যগুলি আপডেট করা হয়, বাকিগুলি অপরিবর্তিত থাকে।

// Create reference to the file whose metadata we want to change
firebase::storage::StorageReference forest_ref = storage_ref.child("images/forest.jpg");

// Create file metadata to update
Metadata new_metadata;
newMetadata.set_cache_control("public,max-age=300");
newMetadata.set_content_type("image/jpeg");

// Update metadata properties
Future future = forest_ref.UpdateMetadata(new_metadata);

// Wait for Future to complete...

if (future.Error() != firebase::storage::kErrorNone) {
  // Uh-oh, an error occurred!
} else {
  // We can now retrieve the updated metadata for 'images/forest.jpg'
  Metadata* metadata = future.Result();
}

খালি স্ট্রিংটি পাস করে আপনি লেখার যোগ্য মেটাডেটা বৈশিষ্ট্যগুলি মুছে ফেলতে পারেন:

// Create file metadata with property to delete
StorageMetadata new_metadata;
new_metadata.set_content_type("");

// Delete the metadata property
Future future = forest_ref.UpdateMetadata(new_metadata);

// Wait for Future to complete...

if (future.Error() != 0) {
  // Uh-oh, an error occurred!
} else {
  // metadata.content_type() should be an empty string
  Metadata* metadata = future.Result();
}

হ্যান্ডেল ত্রুটি

মেটাডেটা পাওয়া বা আপডেট করার সময় ত্রুটি ঘটতে পারে এমন অনেক কারণ থাকতে পারে, যার মধ্যে রয়েছে ফাইলটি বিদ্যমান না থাকা, অথবা ব্যবহারকারীর পছন্দসই ফাইলটি অ্যাক্সেস করার অনুমতি না থাকা। ত্রুটি সম্পর্কে আরও তথ্য ডক্সের "হ্যান্ডেল এররস" বিভাগে পাওয়া যাবে।

কাস্টম মেটাডেটা

আপনি std::string বৈশিষ্ট্য সম্বলিত একটি std::map হিসেবে কাস্টম মেটাডেটা নির্দিষ্ট করতে পারেন।

std::map<std::string, std::string>* custom_metadata = metadata.custom_metadata();
custom_metadata->insert(std::make_pair("location", "Yosemite, CA, USA");
custom_metadata->insert(std::make_pair("activity", "Hiking");

আপনি প্রতিটি ফাইলের জন্য অ্যাপ-নির্দিষ্ট ডেটা কাস্টম মেটাডেটাতে সংরক্ষণ করতে পারেন, তবে আমরা এই ধরণের ডেটা সংরক্ষণ এবং সিঙ্ক্রোনাইজ করার জন্য একটি ডাটাবেস (যেমন Firebase Realtime Database ) ব্যবহার করার পরামর্শ দিচ্ছি।

ফাইল মেটাডেটা বৈশিষ্ট্য

একটি ফাইলের মেটাডেটা বৈশিষ্ট্যের সম্পূর্ণ তালিকা নীচে পাওয়া যাবে:

সম্পত্তি আদর্শ লেখার যোগ্য
bucket কনস্ট অক্ষর* না
generation কনস্ট অক্ষর* না
metageneration কনস্ট অক্ষর* না
full_path কনস্ট অক্ষর* না
name কনস্ট অক্ষর* না
size int64_t সম্পর্কে না
time_created int64_t সম্পর্কে না
updated int64_t সম্পর্কে না
cache_control কনস্ট অক্ষর* হ্যাঁ
content_disposition কনস্ট অক্ষর* হ্যাঁ
content_encoding কনস্ট অক্ষর* হ্যাঁ
content_language কনস্ট অক্ষর* হ্যাঁ
content_type কনস্ট অক্ষর* হ্যাঁ
download_urls std::vector<std::string> না
custom_metadata std::map<std::string, std::string> হ্যাঁ

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

ফাইল আপলোড, ডাউনলোড এবং আপডেট করা গুরুত্বপূর্ণ, তবে সেগুলি সরাতে সক্ষম হওয়াও গুরুত্বপূর্ণ। আসুন জেনে নেওয়া যাক Cloud Storage থেকে ফাইলগুলি কীভাবে মুছবেন