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 থেকে কীভাবে ফাইল মুছতে হয় তা জেনে নেওয়া যাক।