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::map হিসেবে কাস্টম মেটাডেটা নির্দিষ্ট করতে পারেন যাতে std::string বৈশিষ্ট্য রয়েছে।

std::map* 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 const অক্ষর* না
generation const অক্ষর* না
metageneration const অক্ষর* না
full_path const অক্ষর* না
name const অক্ষর* না
size int64_t না
time_created int64_t না
updated int64_t না
cache_control const অক্ষর* হ্যাঁ
content_disposition const অক্ষর* হ্যাঁ
content_encoding const অক্ষর* হ্যাঁ
content_language const অক্ষর* হ্যাঁ
content_type const অক্ষর* হ্যাঁ
download_urls std::vector<std::string> না
custom_metadata std::map<std::string, std::string> হ্যাঁ

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

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