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::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* | নরওয়ে (KO) |
generation |
const char* | নরওয়ে (KO) |
metageneration |
const char* | নরওয়ে (KO) |
full_path |
const char* | নরওয়ে (KO) |
name |
const char* | নরওয়ে (KO) |
size |
int64_t | নরওয়ে (KO) |
time_created |
int64_t | নরওয়ে (KO) |
updated |
int64_t | নরওয়ে (KO) |
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> | নরওয়ে (KO) |
custom_metadata |
std::map<std::string, std::string> | হ্যাঁ |
পরবর্তী ধাপ
ফাইল আপলোড, ডাউনলোড ও আপডেট করা গুরুত্বপূর্ণ, তবে সেগুলি সরিয়ে দেওয়ার ক্ষমতাও গুরুত্বপূর্ণ। Cloud Storage থেকে কীভাবে ফাইল মুছতে হয় তা জেনে নেওয়া যাক।