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

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

फ़ाइल का मेटाडेटा पाना

फ़ाइल के मेटाडेटा में, आम तौर पर इस्तेमाल होने वाली प्रॉपर्टी शामिल होती हैं. जैसे, 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 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.