Unity-এর জন্য Cloud Storage-এর সাথে ফাইল মেটাডেটা ব্যবহার করা

Cloud Storage রেফারেন্সে ফাইল আপলোড করার পরে, আপনি ফাইল মেটাডেটা পেতে ও আপডেট করতে পারবেন, যেমন কন্টেন্টের ধরন আপডেট করা। এছাড়াও, ফাইল অতিরিক্ত ফাইল মেটাডেটা সহ কাস্টম কী/ভ্যালু পেয়ার স্টোর করতে পারে।

ফাইলের মেটাডেটা পাওয়া

ফাইল মেটাডেটাতে Name, SizeBytes এবং ContentType (প্রায়শই MIME ধরন হিসেবে উল্লেখ করা হয়) সহ কিছু সাধারণ প্রপার্টি থাকে, এছাড়াও কিছু কম সাধারণ প্রপার্টি যেমন ContentDisposition এবং CreationTimeMillis থাকে। GetMetadataAsync মেথড ব্যবহার করে Cloud Storage রেফারেন্স থেকে এই মেটাডেটা পাওয়া যেতে পারে।

// 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 নরওয়ে (KO)
Generation string নরওয়ে (KO)
MetadataGeneration string নরওয়ে (KO)
Path string নরওয়ে (KO)
Name string নরওয়ে (KO)
SizeBytes long নরওয়ে (KO)
CreationTimeMillis long নরওয়ে (KO)
UpdatedTimeMillis long নরওয়ে (KO)
CacheControl string হ্যাঁ
ContentDisposition string হ্যাঁ
ContentEncoding string হ্যাঁ
ContentLanguage string হ্যাঁ
ContentType string হ্যাঁ
DownloadUrl Uri নরওয়ে (KO)
DownloadUrls IList<Uri> নরওয়ে (KO)
CustomMetadataKeys IEnumerable<string> হ্যাঁ

পরবর্তী ধাপ

ফাইল আপলোড, ডাউনলোড ও আপডেট করা গুরুত্বপূর্ণ, তবে সেগুলি সরাতে পারার বিষয়টিও গুরুত্বপূর্ণ। Cloud Storage থেকে কীভাবে ফাইল মুছতে হয় তা জানুন।