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 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 থেকে কীভাবে ফাইল মুছতে হয় তা জানুন।