Cloud Storage রেফারেন্সে একটি ফাইল আপলোড করার পর, আপনি ফাইলের মেটাডেটাও পেতে এবং আপডেট করতে পারেন, যেমন কন্টেন্ট টাইপ আপডেট করার জন্য। ফাইলগুলিতে অতিরিক্ত মেটাডেটা সহ কাস্টম কী/ভ্যালু পেয়ারও সংরক্ষণ করা যায়।
ফাইল মেটাডেটা পান
ফাইল মেটাডেটাতে name , size , এবং content_type (যা প্রায়শই MIME type নামে পরিচিত)-এর মতো সাধারণ প্রোপার্টিগুলোর পাশাপাশি 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 Futurefuture = 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 Futurefuture = 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 Futurefuture = 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(); }
ত্রুটিগুলি পরিচালনা করুন
মেটাডেটা সংগ্রহ বা আপডেট করার সময় বিভিন্ন কারণে ত্রুটি ঘটতে পারে, যার মধ্যে রয়েছে ফাইলটির অস্তিত্ব না থাকা, অথবা কাঙ্ক্ষিত ফাইলটি অ্যাক্সেস করার জন্য ব্যবহারকারীর অনুমতি না থাকা। ত্রুটি সম্পর্কে আরও তথ্য ডক্সের ' Handle Errors' বিভাগে পাওয়া যাবে।
কাস্টম মেটাডেটা
আপনি std:: 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 | const char* | না |
generation | const char* | না |
metageneration | const char* | না |
full_path | const char* | না |
name | const char* | না |
size | int64_t | না |
time_created | int64_t | না |
updated | int64_t | না |
cache_control | const char* | হ্যাঁ |
content_disposition | const char* | হ্যাঁ |
content_encoding | const char* | হ্যাঁ |
content_language | const char* | হ্যাঁ |
content_type | const char* | হ্যাঁ |
download_urls | std::vector<std::string> | না |
custom_metadata | std::map<std::string, std::string> | হ্যাঁ |
পরবর্তী পদক্ষেপ
ফাইল আপলোড, ডাউনলোড এবং আপডেট করা যেমন গুরুত্বপূর্ণ, তেমনি সেগুলো মুছে ফেলার ক্ষমতাও জরুরি। চলুন জেনে নিই Cloud Storage থেকে কীভাবে ফাইল ডিলিট করতে হয়।