Cloud Storage रेफ़रंस में कोई फ़ाइल अपलोड करने के बाद, फ़ाइल का मेटाडेटा भी पाया और अपडेट किया जा सकता है. उदाहरण के लिए, कॉन्टेंट टाइप को अपडेट करने के लिए. फ़ाइलों में, फ़ाइल के अतिरिक्त मेटाडेटा के साथ कस्टम की/वैल्यू पेयर भी सेव किए जा सकते हैं.
फ़ाइल का मेटाडेटा पाना
फ़ाइल के मेटाडेटा में, Name, SizeBytes, और ContentType (इसे अक्सर एमआईएमई टाइप कहा जाता है) जैसी सामान्य प्रॉपर्टी के साथ-साथ, ContentDisposition और CreationTimeMillis जैसी कुछ कम सामान्य प्रॉपर्टी भी शामिल होती हैं. इस मेटाडेटा को Cloud Storage रेफ़रंस से वापस पाया जा सकता है. इसके लिए, GetMetadataAsync तरीके का इस्तेमाल करें.
// Create reference to the file whose metadata we want to retrieve StorageReference forestRef = storageRef.Child("images/forest.jpg"); // Get metadata properties forestRef.GetMetadataAsync().ContinueWithOnMainThread(task => { if (!task.IsFaulted && !task.IsCanceled) { StorageMetadata meta = task.Result; // do stuff with meta } });
फ़ाइल का मेटाडेटा अपडेट करना
फ़ाइल अपलोड होने के बाद, फ़ाइल के मेटाडेटा को किसी भी समय अपडेट किया जा सकता है. इसके लिए, UpdateMetadataAsync तरीके का इस्तेमाल करें. यह MetadataChange ऑब्जेक्ट लेता है.
किन प्रॉपर्टी को अपडेट किया जा सकता है, इस बारे में ज़्यादा जानने के लिए पूरी सूची देखें. मेटाडेटा में बताई गई प्रॉपर्टी सिर्फ़ अपडेट की जाती हैं. बाकी सभी प्रॉपर्टी में कोई बदलाव नहीं किया जाता.
// Create reference to the file whose metadata we want to change StorageReference forestRef = storageRef.Child("images/forest.jpg"); // Create file metadata to update var newMetadata = new MetadataChange(); newMetadata.CacheControl = "public,max-age=300"; newMetadata.ContentType = "image/jpeg"; // Update metadata properties forestRef.UpdateMetadataAsync(newMetadata).ContinueWithOnMainThread(task => { if (!task.IsFaulted && !task.IsCanceled) { // access the updated meta data StorageMetadata meta = task.Result; } });
लिखे जा सकने वाले मेटाडेटा की प्रॉपर्टी को मिटाने के लिए, खाली स्ट्रिंग पास करें:
// Create file metadata to update var newMetadata = new MetadataChange(); newMetadata.ContentType = ""; // Update metadata properties forestRef.UpdateMetadataAsync(newMetadata).ContinueWithOnMainThread(task => { if (!task.IsFaulted && !task.IsCanceled) { StorageMetadata meta = task.Result; // meta.ContentType should be an empty string now } });
गड़बड़ियां ठीक करना
मेटाडेटा पाने या उसे अपडेट करने के दौरान गड़बड़ियां होने की कई वजहें हो सकती हैं. जैसे, फ़ाइल मौजूद न होना या उपयोगकर्ता के पास, फ़ाइल को ऐक्सेस करने की अनुमति न होना. गड़बड़ियों के बारे में ज़्यादा जानकारी, दस्तावेज़ के गड़बड़ियों को ठीक करना सेक्शन में मिल सकती है.
कस्टम मेटाडेटा
Dictionary<string, string> के तौर पर कस्टम मेटाडेटा तय किया जा सकता है.
var newMetadata = new MetadataChange { CustomMetadata = new Dictionary<string, string> { {"location", "Yosemite, CA, USA"}, {"activity", "Hiking"} } }; // UpdateMetadataAsync
कस्टम मेटाडेटा में, हर फ़ाइल के लिए ऐप्लिकेशन से जुड़ा डेटा सेव किया जा सकता है. हालांकि, हमारा सुझाव है कि इस तरह के डेटा को सेव करने और सिंक करने के लिए, डेटाबेस (जैसे कि Firebase Realtime Database) का इस्तेमाल करें.
फ़ाइल के मेटाडेटा की प्रॉपर्टी
किसी फ़ाइल पर मौजूद मेटाडेटा प्रॉपर्टी की पूरी सूची यहां दी गई है:
| प्रॉपर्टी | टाइप | MetadataChange में बदलाव किया जा सकता है |
|---|---|---|
Bucket |
string |
नहीं |
Generation |
string |
नहीं |
MetadataGeneration |
string |
नहीं |
Path |
string |
नहीं |
Name |
string |
नहीं |
SizeBytes |
long |
नहीं |
CreationTimeMillis |
long |
नहीं |
UpdatedTimeMillis |
long |
नहीं |
CacheControl |
string |
YES |
ContentDisposition |
string |
YES |
ContentEncoding |
string |
YES |
ContentLanguage |
string |
YES |
ContentType |
string |
YES |
DownloadUrl |
Uri |
नहीं |
DownloadUrls |
IList<Uri> |
नहीं |
CustomMetadataKeys |
IEnumerable<string> |
YES |
अगले चरण
फ़ाइलों को अपलोड, डाउनलोड, और अपडेट करना ज़रूरी है. हालांकि, उन्हें हटाने की सुविधा भी ज़रूरी है. आइए, Cloud Storage से फ़ाइलें मिटाने का तरीका जानें.