পূর্বে উল্লিখিত হিসাবে, FileSystem এবং ফাইল API গুলি, সহ FileWriter এপিআই, একটি ক্লায়েন্ট মেশিনে একটি ব্রাউজার ট্যাব / উইন্ডো প্রেক্ষাপটে থেকে পড়তে ও লিখতে ফাইল ব্যবহার করা যাবে।
ফাইলসিস্টেম এবং ফাইল রাইটার এপিআই সম্পর্কিত বেশ কয়েকটি জিনিস রয়েছে যা সম্পর্কে আপনার সচেতন হওয়া উচিত, এর কয়েকটি উল্লেখ করা হয়েছিল তবে পুনরাবৃত্তি করার মতো:
- এপিআইগুলির বাস্তবায়ন বর্তমানে কেবল ক্রোমিয়াম-ভিত্তিক ব্রাউজারগুলিতে (ক্রোম এবং অপেরা) রয়েছে
- 24 এপ্রিল, 2014-এ দু'টি এপিআইই ডাব্লু 3 সি স্ট্যান্ডার্ড ট্র্যাক থেকে সরিয়ে নেওয়া হয়েছে এবং এখন পর্যন্ত মালিকানাধীন রয়েছে
- ভবিষ্যতে প্রয়োগকারী ব্রাউজারগুলি থেকে (এখন মালিকানাধীন) এপিআইগুলি সরানো একটি সম্ভাবনা
- একটি স্যান্ডবক্স (ডিস্কের একটি অবস্থান যার বাইরে ফাইলগুলি কোনও প্রভাব ফেলতে পারে না) এপিআই দিয়ে তৈরি ফাইলগুলি সংরক্ষণ করতে ব্যবহৃত হয়
- একজন ভার্চুয়াল ফাইল সিস্টেম (একটি ডিরেক্টরি কাঠামো যা ব্রাউজারের মধ্যে থেকে অ্যাক্সেস করার সময় এটি একই রূপে ডিস্কে অগত্যা উপস্থিত থাকে না) ব্যবহৃত হয়, এটি API এর সাথে তৈরি ফাইলগুলি উপস্থাপন করে
এগুলি করার জন্য সরাসরি এবং অপ্রত্যক্ষভাবে API গুলি কীভাবে ব্যবহৃত হয় তার সহজ উদাহরণ এখানে রয়েছে:
বেকড গুডস *
ফাইল লিখুন:
bakedGoods.set({
data: [{key: "testFile", value: "Hello world!", dataFormat: "text/plain"}],
storageTypes: ["fileSystem"],
options: {fileSystem:{storageType: Window.PERSISTENT}},
complete: function(byStorageTypeStoredItemRangeDataObj, byStorageTypeErrorObj){}
});
ফাইল পড়া:
bakedGoods.get({
data: ["testFile"],
storageTypes: ["fileSystem"],
options: {fileSystem:{storageType: Window.PERSISTENT}},
complete: function(resultDataObj, byStorageTypeErrorObj){}
});
কাঁচা ফাইল, ফাইল রাইটার এবং ফাইলসিস্টেম এপিআই ব্যবহার করে
ফাইল লিখুন:
function onQuotaRequestSuccess(grantedQuota)
{
function saveFile(directoryEntry)
{
function createFileWriter(fileEntry)
{
function write(fileWriter)
{
var dataBlob = new Blob(["Hello world!"], {type: "text/plain"});
fileWriter.write(dataBlob);
}
fileEntry.createWriter(write);
}
directoryEntry.getFile(
"testFile",
{create: true, exclusive: true},
createFileWriter
);
}
requestFileSystem(Window.PERSISTENT, grantedQuota, saveFile);
}
var desiredQuota = 1024 * 1024 * 1024;
var quotaManagementObj = navigator.webkitPersistentStorage;
quotaManagementObj.requestQuota(desiredQuota, onQuotaRequestSuccess);
ফাইল পড়া:
function onQuotaRequestSuccess(grantedQuota)
{
function getfile(directoryEntry)
{
function readFile(fileEntry)
{
function read(file)
{
var fileReader = new FileReader();
fileReader.onload = function(){var fileData = fileReader.result};
fileReader.readAsText(file);
}
fileEntry.file(read);
}
directoryEntry.getFile(
"testFile",
{create: false},
readFile
);
}
requestFileSystem(Window.PERSISTENT, grantedQuota, getFile);
}
var desiredQuota = 1024 * 1024 * 1024;
var quotaManagementObj = navigator.webkitPersistentStorage;
quotaManagementObj.requestQuota(desiredQuota, onQuotaRequestSuccess);
যদিও ফাইলসিস্টেম এবং ফাইল রাইটার এপিআইগুলি আর স্ট্যান্ডার্ড ট্র্যাকে নেই, তবে কিছু কিছু ক্ষেত্রে তাদের ব্যবহার ন্যায়সঙ্গত হতে পারে, আমার মতে, কারণ:
- অ-বাস্তবায়নকারী ব্রাউজার বিক্রেতাদের কাছ থেকে পুনর্নবীকরণ করা আগ্রহগুলি এটিকে ঠিক আবার এটিকে রাখতে পারে
- বাজারে প্রবেশের (ক্রোমিয়াম-ভিত্তিক) ব্রাউজারগুলি বেশি
- গুগল (ক্রোমিয়ামের মূল অবদানকারী) এপিআইগুলিতে জীবনের শেষ তারিখ দেয় নি
"কিছু কেস" আপনার নিজের দ্বারা অন্তর্ভুক্ত কিনা তা অবশ্য আপনার সিদ্ধান্ত নেওয়ার জন্য।
* বেকডগুডগুলি এখানে ঠিক এই ব্যক্তি ছাড়া অন্য কেউ দ্বারা রক্ষণাবেক্ষণ করা হয় :)