डेटा और स्प्रेडशीट · CSV क्लीनर
कैसे एक ब्राउज़र किसी वेब वर्कर में बड़े CSV को अपलोड किए बिना साफ़ करता है
· यह काम किस प्रकार करता है
CAसवी ब्राउज़र-प्रसंस्करण गोपनीयता
'कोई अपलोड नहीं' तब तक मार्केटिंग जैसा लगता है जब तक आप यह नहीं देख लेते कि यह कैसे काम करता है। यह पोस्ट बताती है कि एक ब्राउज़र किसी फ़ाइल को स्थानीय रूप से कैसे पढ़ता है, एक वेब वर्कर पेज को उत्तरदायी क्यों रखता है, फ़ाइल आकार को क्या सीमित करता है, और कैसे सत्यापित किया जाए कि कुछ भी नहीं भेजा गया है।
एक बड़ा निर्यात और एक वेब टूल - आमतौर पर आपकी फ़ाइल के साथ क्या होता है, और अपलोड एक तकनीकी आवश्यकता क्यों नहीं है
किसी वेब पेज पर फ़ाइल चुनना एक अपलोड के समान हो सकता है, लेकिन चयन और ट्रांसमिशन अलग-अलग ब्राउज़र ऑपरेशन हैं। CSV विज़िटर द्वारा फ़ाइल ऑब्जेक्ट चुनने के बाद क्लीनर उसे प्राप्त करता है, अनुमत प्रकार और कॉन्फ़िगर किए गए आकार को मान्य करता है, फिर पेज के अंदर उसका टेक्स्ट पढ़ता है। परिसीमन पता लगाने या पंक्ति सफ़ाई के लिए कोई अपलोड आवश्यक नहीं है।
आधिकारिक उत्पाद रिकॉर्ड कहता है कि पंक्तियों को डिवाइस पर पार्स किया जाता है, जबकि टूल रिकॉर्ड दावे को सीमित करता है: इसका कोड फ़ाइल डेटा, चिपकाए गए टेक्स्ट या जेनरेट किए गए आउटपुट को ले जाने का कोई अनुरोध नहीं करता है। प्रकट किए गए एनालिटिक्स स्क्रिप्ट अनुरोध अलग पेज ट्रैफ़िक हैं, इसलिए गोपनीयता भाषा को उन्हें CSV प्रसंस्करण पथ से अलग करना चाहिए।
किसी फ़ाइल को भेजे बिना पढ़ना - कैसे ब्राउज़र की फ़ाइल API आपके डिवाइस पर पेज को बाइट्स तक पहुंच प्रदान करती है
कार्यान्वयन रूपरेखा में नामित FileReader API के बजाय `file.text()` को कॉल करता है। वह वादा पेज पर उपलब्ध JavaScript स्ट्रिंग के साथ हल होता है। एक JSON फ़ाइल एक अलग रूपांतरण शाखा लेती है; सीमांकित पाठ को वैकल्पिक सीमांकक विकल्प के साथ कार्यकर्ता को एक संदेश के रूप में भेजा जाता है।
स्थानीय रूप से पढ़ने से साइट को ड्राइव तक सामान्य पहुंच नहीं मिलती है। पेज केवल ब्राउज़र नियंत्रण के माध्यम से चयनित फ़ाइल प्राप्त करता है। यह अंतिम डाउनलोड के लिए एक आधार नाम संग्रहीत करता है, वर्तमान तालिका को टैब मेमोरी में रखता है और जब विज़िटर रीसेट का अनुरोध करता है तो उस स्थिति को साफ़ करता है।
अपलोड किए बिना चयनित बाइट्स को पढ़ने के लिए पेज File.text() का उपयोग करता है
पहली कॉल पर आलस्य से बनाए गए वेब वर्कर में पार्सिंग चलती है। कार्यकर्ता सीमांकक का पता लगाता है, परीक्षणों द्वारा उपयोग की जाने वाली उसी राज्य मशीन के माध्यम से वर्णों को स्कैन करता है, और पूर्ण हेडर, पंक्तियाँ, चेतावनियाँ और BOM ध्वज लौटाता है। प्रगति लेबल उन चरणों के आसपास भेजे जाते हैं ताकि मुख्य इंटरफ़ेस अद्यतन होता रह सके।
स्कैन को ऑफलोड करना उस सिंक्रोनस कैरेक्टर लूप को मुख्य UI थ्रेड पर एकाधिकार करने से रोकता है। यह पार्सिंग को मुफ़्त या स्ट्रीम नहीं करता है; स्रोत पाठ और लौटाई गई तालिका अभी भी स्मृति में है। पेजहाइड पर, क्लाइंट इनफ़्लाइट कॉल को रद्द कर देता है और वर्कर को समाप्त कर देता है, इसलिए बैकग्राउंड टैब इसे अनिश्चित काल तक बनाए नहीं रखता है।
मेमोरी, अपलोड सीमा नहीं, सीमा है - क्यों सीमा सर्वर कोटा के बजाय आपके डिवाइस और ब्राउज़र पर निर्भर करती है
रूपरेखा में कहा गया है कि अपलोड सीमा के बजाय मेमोरी ही सीमा थी, लेकिन शिप किया गया इंटरफ़ेस स्पष्ट रूप से अधिकतम 50 MB को मान्य करता है। वह सीमा कॉन्फ़िगरेशन गद्य और पैनल कोड दोनों में है। डिवाइस और ब्राउज़र संसाधन अभी भी सैद्धांतिक अधिकतम से नीचे विफल हो सकते हैं, फिर भी लेख को जानबूझकर उत्पाद गार्ड को नहीं मिटाना चाहिए।
न ही रिपॉजिटरी साक्ष्य एक सार्वभौमिक पंक्ति छत, मेमोरी गुणक या प्रसंस्करण समय प्रदान कर सकता है। फ़ाइल सामग्री बनाई गई स्ट्रिंग की संख्या और लंबाई को बदल देती है। रक्षात्मक अपेक्षा सीमित इनपुट प्लस वर्कर पार्सिंग है, न कि प्रदर्शन का आंकड़ा जिसे विज़िटर के हार्डवेयर में कभी नहीं मापा गया था।
इंटरफ़ेस डिवाइस बाधाओं के अतिरिक्त 50 MB फ़ाइल सीमा लागू करता है
संकीर्ण नो-अपलोड दावे को सत्यापित करने के लिए, पेज लोड होने के बाद डेवलपर टूल खोलें, नेटवर्क सूची साफ़ करें, एक हानिरहित विशिष्ट नमूना चुनें और क्लीनअप चलाएं। उस मार्कर के लिए नए अनुरोध URL, तरीकों और निकायों का निरीक्षण करें। CSV डाउनलोड रूपांतरण समापन बिंदु के अनुरोध के बजाय स्थानीय ब्राउज़र कार्रवाई के रूप में प्रकट हो सकता है।
स्रोत निरीक्षण अवलोकन को पूरक करता है: लोड पथ फ़ाइल टेक्स्ट का उपयोग करता है, कार्यकर्ता स्थानीय पार्सर कोड आयात करता है और डाउनलोडटेक्स्ट आउटपुट बनाता है। रनटाइम निरीक्षण परिनियोजन परिवर्धन को पकड़ता है जो अकेले स्रोत से छूट सकता है। न तो यह साबित होता है कि ब्राउज़र एक्सटेंशन या ऑपरेटिंग सिस्टम क्या करते हैं, इसलिए निष्कर्ष को ToolAcre के प्रसंस्करण पथ तक सीमित रखें।
कारगर उदाहरण - नेटवर्क पैनल और मेमोरी उपयोग को देखते हुए एक बड़े निर्यात को साफ करना, कम मेमोरी वाले डिवाइस पर क्या उम्मीद की जाए
तैयार किए गए नमूने का उपयोग प्रलेखित सीमा के नीचे आराम से करें, जिसमें प्रगति को दृश्यमान बनाने के लिए पर्याप्त पंक्तियाँ हों लेकिन कोई ग्राहक डेटा न हो। कार्यकर्ता गतिविधि देखें और पूर्वावलोकन करें, व्हाइटस्पेस ट्रिम करें लागू करें, फिर डाउनलोड करें। रिकॉर्ड करें कि क्या किसी अनुरोध में अद्वितीय मार्कर शामिल है; मनगढ़ंत मेगाबाइट-प्रति-सेकंड या मेमोरी चार्ट प्रकाशित न करें।
एक प्रतिबंधित डिवाइस पर, एकमात्र सुरक्षित भविष्यवाणी यह है कि उपलब्ध संसाधन भिन्न होते हैं। कॉन्फ़िगर की गई सीमा बड़ी फ़ाइलों को इस पथ में प्रवेश करने से रोकती है, जबकि सामान्य ब्राउज़र मेमोरी दबाव संभव रहता है। यदि एक परीक्षण टैब अस्थिर हो जाता है, तो अन्य कार्य बंद कर दें, नमूना कम करें और सार्वभौमिक समाधान का वादा करने के बजाय मूल को संरक्षित करें।
व्यावहारिक उदाहरण: स्मृति या समय के आंकड़ों का आविष्कार किए बिना हानिरहित नमूने को सत्यापित करें
स्थानीय सफाई पहले किसी अन्य सेवा को भेजी गई फ़ाइल को वापस नहीं ले सकती है, और यह आकार गार्ड द्वारा अस्वीकार किए गए इनपुट को संसाधित नहीं कर सकती है। यह पेज को एक्सटेंशन, क्लिपबोर्ड इतिहास या मशीन पर मैलवेयर से अलग नहीं करता है। वे पार्सर और कार्यकर्ता कार्यान्वयन के बाहर अलग खतरे की सीमाएँ हैं।
टूल सत्र के दौरान बीस टेबल स्थितियों तक का पूर्ववत इतिहास बरकरार रखता है, जो स्थानीय मेमोरी का भी उपभोग करता है। समाशोधन तालिका और नियंत्रण को रीसेट करता है; पेज छोड़ने से कार्य बंद हो जाता है और कार्यकर्ता समाप्त हो जाता है। यह व्यवहार उपयोगी परिचालन विवरण है, लेकिन यह ब्राउज़र या डिवाइस मेमोरी के लिए सुरक्षित-मिटाने की गारंटी नहीं है।
ऑन-डिवाइस प्रोसेसिंग जांच योग्य है - ToolAcre CSV क्लीनर आपके ब्राउज़र में कैसे चलता है और कभी भी आपकी फ़ाइल अपलोड नहीं करता है
संपूर्ण सत्यापित पथ चयन, `File.text()`, वर्कर पार्सिंग, शुद्ध पंक्ति परिवर्तन, क्रमबद्धता और ब्राउज़र डाउनलोड है। कॉन्फ़िगरेशन वास्तविक 50 MB प्रवेश सीमा की पहचान करता है और गोपनीयता कथन स्पष्ट रूप से प्रकट विश्लेषण अनुरोधों को स्प्रेडशीट सामग्री से अलग करता है। यह किसी नारे से अधिक मजबूत है क्योंकि प्रत्येक सीमा का निरीक्षण किया जा सकता है।
जब भी आपके संगठन के लिए परिनियोजन विवरण मायने रखता है तो गैर-संवेदनशील डेटा के साथ नेटवर्क जांच चलाएं। वर्तमान स्रोत और देखे गए सत्र के साक्ष्य एक सटीक दावे का समर्थन करते हैं: ToolAcre के CSV ऑपरेशन में कोई अपलोड एंडपॉइंट नहीं है और कोई तालिका सामग्री नहीं भेजता है। परिशुद्धता पूरे ब्राउज़र के ऑफ़लाइन होने का दिखावा किए बिना कथन को उपयोगी बनाए रखती है।