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 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(); }
হ্যান্ডেল ত্রুটি
মেটাডেটা পাওয়ার বা আপডেট করার সময় ত্রুটি ঘটতে পারে এমন অনেকগুলি কারণ রয়েছে, যার মধ্যে ফাইলটি বিদ্যমান নেই বা ব্যবহারকারীর পছন্দসই ফাইল অ্যাক্সেস করার অনুমতি নেই। ত্রুটিগুলি সম্পর্কে আরও তথ্য ডক্সের হ্যান্ডেল ত্রুটি বিভাগে পাওয়া যাবে৷
কাস্টম মেটাডেটা
আপনি একটি std::map
হিসেবে কাস্টম মেটাডেটা নির্দিষ্ট করতে পারেন যাতে std::string
বৈশিষ্ট্য রয়েছে।
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 অক্ষর* | না |
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 থেকে ফাইল মুছে ফেলার উপায়।