FileSystemSyncAccessHandle के लिए, कई रीडर और राइटर के साथ-साथ FileSystemWritableFileStream के लिए, एक्सक्लूज़िव राइटर की सुविधा.
FileSystemSyncAccessHandle के लिए, एक से ज़्यादा रीडर और लेखक
ऑरिजिन प्राइवेट फ़ाइल सिस्टम (जिसे कभी-कभी बकेट फ़ाइल सिस्टम भी कहा जाता है) की मदद से, डेवलपर ऐसी फ़ाइलों को ऐक्सेस कर सकते हैं जिन्हें पढ़ने और लिखने की परफ़ॉर्मेंस को बेहतर बनाने के लिए ऑप्टिमाइज़ किया गया है. ऐसा FileSystemSyncAccessHandle
ऑब्जेक्ट की मदद से होता है. फ़िलहाल, एक ही फ़ाइल एंट्री के लिए कई FileSystemSyncAccessHandle
ऑब्जेक्ट खोलने की कोशिश करने पर, NoModificationAllowedError
दिखता है. हालांकि, कुछ मामलों में इस पाबंदी की वजह से समस्याएं आ रही हैं. इसलिए, Chrome 121 में FileSystemFileHandle.createSyncAccessHandle()
तरीके के लिए एक नया mode
पैरामीटर जोड़ा गया है. इस पैरामीटर के लिए, नीचे दी गई स्ट्रिंग वैल्यू इस्तेमाल की जा सकती हैं:
"readwrite"
: यह मौजूदा डिफ़ॉल्ट सेटिंग है. खोलने के बाद,FileSystemSyncAccessHandle
पर किसी भी तरीके से फ़ाइल को ऐक्सेस किया जा सकता है.FileSystemSyncAccessHandle
का सिर्फ़ एक इंस्टेंस इस्तेमाल किया जा सकता है."read-only"
: एक से ज़्यादा रीडर को अनुमति देता है. खोलने के बाद,FileSystemSyncAccessHandle
पर सिर्फ़ पढ़ने जैसे तरीके इस्तेमाल किए जा सकते हैं:read()
,getSize()
, औरclose()
.FileSystemSyncAccessHandle
के कई इंस्टेंस तब तक बनाए जा सकते हैं, जब तक कि वे सभी सिर्फ़ पढ़ने वाले मोड में हों."readwrite-unsafe"
: एक से ज़्यादा लोगों को लिखने की अनुमति देता है. खोलने के बाद,FileSystemSyncAccessHandle
पर किसी भी तरीके से फ़ाइल को ऐक्सेस किया जा सकता है.FileSystemSyncAccessHandle
के कई इंस्टेंस तब तक बनाए जा सकते हैं, जब तक वे सभी रीड-राइट-अनसेफ़ मोड में हों.
"readwrite"
विकल्प को डिफ़ॉल्ट के तौर पर सेट करके, मौजूदा व्यवहार को बनाए रखा जाता है. इससे एक बार में सिर्फ़ एक इंस्टेंस इस्तेमाल किया जा सकता है. अगर किसी साइट को एक से ज़्यादा FileSystemSyncAccessHandle
ऑब्जेक्ट खोलने हैं, लेकिन उनमें बदलाव करने की ज़रूरत नहीं है, तो "read-only"
विकल्प का इस्तेमाल किया जाना चाहिए. आखिर में, आखिरी विकल्प "readwrite-unsafe"
में कई इंस्टेंस के साथ-साथ, पढ़ने और लिखने की अनुमति भी मिलती है. इस मामले में, एक से ज़्यादा टैब से डेटा लिखने पर, डेटा लिखने की प्रोसेस धीमी हो सकती है. साथ ही, साइटों को अपना लॉकिंग स्कीम उपलब्ध कराना होगा.
const handle1 = await handle.createSyncAccessHandle({mode: 'readwrite-unsafe'});
// This will succeed:
const handle2 = await handle.createSyncAccessHandle({mode: 'readwrite-unsafe'});
FileSystemWritableFileStream के लिए खास राइटर
FileSystemSyncAccessHandle
के उलट, आज हर फ़ाइल एंट्री के लिए FileSystemWritableFileStream
के कई इंस्टेंस बनाए जा सकते हैं. हालांकि, इसमें किसी खास लेखक को चुनने का विकल्प नहीं है. Chrome 121, FileSystemAccessFileHandle.createWritable()
तरीके में एक वैकल्पिक mode
पैरामीटर जोड़ता है. इस पैरामीटर की ये वैल्यू होती हैं:
"exclusive"
मोड: एक बार में सिर्फ़ एक लेखक मौजूद हो सकता है."siloed"
मोड: यह मौजूदा डिफ़ॉल्ट मोड है. हर बनाए गए लेखक की अपनी स्वैप फ़ाइल होगी.
const writable1 = await handle.createWritable({mode: 'exclusive'});
// This will fail:
const writable2 = await handle.createWritable();
ब्राउज़र समर्थन
Chrome 121 से, FileSystemSyncAccessHandle
के लिए एक से ज़्यादा रीडर और राइटर की सुविधा के साथ-साथ, FileSystemWritableFileStream
के लिए खास राइटर की सुविधा भी काम करती है.
डेवलपर के लिए उपलब्ध ट्रायल वर्शन में शामिल होना
Chrome 121 के लॉन्च से पहले, इस सुविधा को टेस्ट करने के लिए डेवलपर ट्रायल में शामिल हों. इसके लिए, chrome://flags
में #file-system-access-locking-scheme
फ़्लैग को चालू है पर सेट करें. इससे, आपको अपनी मशीन पर स्थानीय तौर पर इस सुविधा को टेस्ट करने की सुविधा मिलेगी.
आभार
इस लेख की समीक्षा दासेल ली, नाथन मेमॉट, और रेचेल एंड्रयू ने की.