फ़्लटर पर क्लाउड स्टोरेज के साथ फ़ाइल मेटाडेटा का उपयोग करें

क्लाउड स्टोरेज संदर्भ में फ़ाइल अपलोड करने के बाद, आप फ़ाइल मेटाडेटा भी प्राप्त और अपडेट कर सकते हैं, उदाहरण के लिए सामग्री प्रकार को देखने या अपडेट करने के लिए। फ़ाइलें अतिरिक्त फ़ाइल मेटाडेटा के साथ कस्टम कुंजी/मूल्य जोड़े भी संग्रहीत कर सकती हैं।

फ़ाइल मेटाडेटा प्राप्त करें

फ़ाइल मेटाडेटा में सामान्य गुण जैसे name , size और contentType (अक्सर MIME प्रकार के रूप में संदर्भित) के अलावा कुछ कम सामान्य गुण जैसे contentDisposition और timeCreated शामिल होते हैं। इस मेटाडेटा को getMetadata() विधि का उपयोग करके क्लाउड स्टोरेज संदर्भ से पुनर्प्राप्त किया जा सकता है।

// 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

आप कस्टम मेटाडेटा में प्रत्येक फ़ाइल के लिए ऐप-विशिष्ट डेटा संग्रहीत कर सकते हैं, लेकिन हम इस प्रकार के डेटा को संग्रहीत और सिंक्रनाइज़ करने के लिए डेटाबेस (जैसे फ़ायरबेस रीयलटाइम डेटाबेस ) का उपयोग करने की अत्यधिक अनुशंसा करते हैं।

फ़ाइल मेटाडेटा गुण

किसी फ़ाइल पर मेटाडेटा गुणों की पूरी सूची नीचे उपलब्ध है:

संपत्ति प्रकार व्यवस्थित करने योग्य?
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> हाँ

फ़ाइलें अपलोड करना, डाउनलोड करना और अपडेट करना महत्वपूर्ण है, लेकिन साथ ही उन्हें हटाना भी महत्वपूर्ण है। आइए जानें क्लाउड स्टोरेज से फाइल्स को कैसे डिलीट करें