Cloud Storage রেফারেন্সে ফাইল আপলোড করার পরে, আপনি ফাইলের মেটাডেটা পেতে এবং আপডেট করতে পারেন, যেমন কন্টেন্টের ধরন দেখতে বা আপডেট করতে। এছাড়াও, ফাইল অতিরিক্ত ফাইল মেটাডেটা সহ কাস্টম কী/ভ্যালুর পেয়ার স্টোর করতে পারে।
ফাইলের মেটাডেটা পান
ফাইলের মেটাডেটাতে name, size এবং
contentType (সাধারণত MIME টাইপ হিসেবে উল্লেখ করা হয়) এর মতো সাধারণ প্রপার্টি থাকে, এর সাথে contentDisposition এবং timeCreated এর মতো কিছু কম
সাধারণ প্রপার্টিও থাকে। এই মেটাডেটা
getMetadata() পদ্ধতি ব্যবহার করে
Cloud Storage রেফারেন্স থেকে ফিরিয়ে আনা যেতে পারে।
// Create reference to the file whose metadata we want to retrieve
final forestRef = storageRef.child("images/forest.jpg");
// Get metadata properties
final metadata = await forestRef.getMetadata();
// Metadata now contains the metadata for 'images/forest.jpg'
ফাইলের মেটাডেটা আপডেট করুন
ফাইল আপলোড সম্পূর্ণ হওয়ার পরে যেকোনও সময় updateMetadata() পদ্ধতি ব্যবহার করে
আপনি ফাইল মেটাডেটা আপডেট করতে পারবেন। কোন কোন প্রপার্টি আপডেট করা যাবে সেই সম্পর্কে আরও তথ্য পেতে
সম্পূর্ণ তালিকা দেখুন। মেটাডেটায় উল্লেখ করা প্রপার্টিগুলিই শুধু আপডেট করা হয়,
বাকিগুলি অপরিবর্তিত থাকে।
// Create reference to the file whose metadata we want to change
final forestRef = storageRef.child("images/forest.jpg");
// Create file metadata to update
final newMetadata = SettableMetadata(
cacheControl: "public,max-age=300",
contentType: "image/jpeg",
);
// Update metadata properties
final metadata = await forestRef.updateMetadata(newMetadata);
// Updated metadata for 'images/forest.jpg' is returned
আপনি null পাস করে রাইটেবল মেটাডেটা প্রপার্টি মুছে দিতে পারবেন:
// Delete the cacheControl property
final newMetadata = SettableMetadata(cacheControl: null);
final metadata = await forestRef.updateMetadata(newMetadata);
সমস্যা ম্যানেজ করা
মেটাডেটা পাওয়া বা আপডেট করার সময় বিভিন্ন কারণে সমস্যা হতে পারে, যেমন ফাইলটি না থাকা বা ব্যবহারকারীর কাছে কাঙ্খিত ফাইল অ্যাক্সেস করার অনুমতি না থাকা। সমস্যা সম্পর্কে আরও তথ্য ডকুমেন্টের সমস্যা সমাধান করুন বিভাগে পাওয়া যাবে।
কাস্টম মেটাডেটা
SettableMetadata কনস্ট্রাক্টরের customMetadata প্যারামিটার ব্যবহার করে আপনি কাস্টম মেটাডেটা নির্দিষ্ট করতে পারবেন:
// Create reference to the file whose metadata we want to change
final forestRef = storageRef.child("images/forest.jpg");
// Create file metadata to update
final newCustomMetadata = SettableMetadata(
customMetadata: {
"location": "Yosemite, CA, USA",
"activity": "Hiking",
},
);
// Update metadata properties
final metadata = await forestRef.updateMetadata(newCustomMetadata);
// Updated metadata for 'images/forest.jpg' is returned
আপনি কাস্টম মেটাডেটাতে প্রতিটি ফাইলের জন্য অ্যাপ-নির্দিষ্ট ডেটা স্টোর করতে পারেন, তবে আমরা এই ধরনের ডেটা স্টোর এবং সিঙ্ক করার জন্য একটি ডেটাবেস (যেমন Firebase রিয়েলটাইম ডেটাবেস) ব্যবহার করার জন্য অত্যন্ত সাজেস্ট করি।
ফাইল মেটাডেটা প্রপার্টি
ফাইলের মেটাডেটা প্রপার্টির সম্পূর্ণ তালিকা নিচে দেওয়া হল:
| প্রপার্টি | প্রকার | সেট করা যাবে? |
|---|---|---|
bucket |
String |
না |
generation |
String |
না |
metageneration |
String |
না |
metadataGeneration |
String |
না |
fullPath |
String |
না |
name |
String |
না |
size |
int |
না |
timeCreated |
DateTime |
না |
updated |
DateTime |
না |
md5Hash |
String |
না |
cacheControl |
String |
হ্যাঁ |
contentDisposition |
String |
হ্যাঁ |
contentEncoding |
String |
হ্যাঁ |
contentLanguage |
String |
হ্যাঁ |
contentType |
String |
হ্যাঁ |
customMetadata |
Map<String, String> |
হ্যাঁ |
ফাইল আপলোড, ডাউনলোড ও আপডেট করা গুরুত্বপূর্ণ, তবে সেগুলি সরিয়ে দেওয়ার ক্ষমতাও গুরুত্বপূর্ণ। আসুন, Cloud Storage থেকে কীভাবে ফাইল মুছতে হয় তা জেনে নেওয়া যাক।