Unity के लिए Cloud Storage के साथ फ़ाइल मेटाडेटा का इस्तेमाल करना

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

फ़ाइल मेटाडेटा पाएं

फ़ाइल मेटाडेटा में Name, SizeBytes, और ContentType (जिन्हें अक्सर MIME टाइप कहा जाता है) जैसी सामान्य प्रॉपर्टी शामिल होती हैं. साथ ही, 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 रीयल टाइम डेटाबेस) का इस्तेमाल करें.

फ़ाइल मेटाडेटा की प्रॉपर्टी

फ़ाइल में मौजूद मेटाडेटा प्रॉपर्टी की पूरी सूची यहां दी गई है:

प्रॉपर्टी टाइप MetadataChange में बदलाव किया जा सकता है
Bucket string NO
Generation string NO
MetadataGeneration string NO
Path string NO
Name string NO
SizeBytes long NO
CreationTimeMillis long NO
UpdatedTimeMillis long NO
CacheControl string YES
ContentDisposition string YES
ContentEncoding string YES
ContentLanguage string YES
ContentType string YES
DownloadUrl Uri NO
DownloadUrls IList<Uri> NO
CustomMetadataKeys IEnumerable<string> YES

अगले चरण

फ़ाइलों को अपलोड, डाउनलोड, और अपडेट करना ज़रूरी है, लेकिन इन्हें हटाने में मदद पाना भी ज़रूरी है. आइए, Cloud Storage से फ़ाइलें मिटाने का तरीका जानें.