PySocks को पूर्वनिर्धारणले ftplib लाई पुनःमार्ग गर्दैन
set_default_proxy ले Python को मूल socket कार्यान्वयन परिवर्तन गर्छ भन्ने नमानेर ftplib ले वास्तवमै बनाउने socket हरू पछ्याउनुहोस्।
socks.set_default_proxy() ले भविष्यका PySocks socksocket वस्तुहरूका लागि पूर्वनिर्धारण मानहरू भण्डारण गर्छ। यसले Python को मूल socket वर्गलाई प्रतिस्थापन गर्दैन। त्यसैले FTP जडान अघि कल हुन्छ भन्ने मात्र कारणले यसले ftplib लाई पुनःमार्ग गर्दैन।
प्रोक्सी URL राख्ने भेरिएबल होइन, कन्स्ट्रक्टरहरू पछ्याउनुहोस्। ftplib ले नियन्त्रण जडान र थप स्थानान्तरण जडानहरू बनाउँछ। निष्क्रिय FTP मा सफल लगइनले नियन्त्रण जडान काम गरेको मात्र प्रमाणित गर्छ; सूची वा फाइल स्थानान्तरणका लागि प्रयोग हुने डेटा socket लाई पनि इच्छित मार्ग चाहिन्छ।
socket.socket प्रतिस्थापन गर्ने वा मोड्युल बेर्ने विधिले PySocks पूर्वनिर्धारण सेट गर्नुभन्दा फरक कार्य गर्छ। यसले त्यही मोड्युल साझा गर्ने अन्य पुस्तकालयहरूलाई असर गर्न सक्छ। पछि मूल फर्काउँदा एकसाथ चलिरहेका जडानहरू त्यो परिवर्तनबाट अलग हुँदैनन्।
अनुकूलित ftplib उपवर्गले जडान मार्गहरू समेट्न सक्छ, तर प्रतिलिपि गरिएका आन्तरिक भागहरूले तिनीहरू आएको Python संस्करणका मान्यताहरू, timeout sentinel र प्रोटोकल ह्यान्डलिङ सहित, बोक्छन्। मानक पुस्तकालयका अद्यावधिकहरूले त्यो प्रतिलिपि अद्यावधिक गर्दैनन्।
आवश्यक प्रोक्सी र FTP मोडका लागि मर्मत गरिएको क्लाइन्ट वा समर्थित एकीकरण छान्नुहोस्। PycURL पासिभ FTP डाउनलोड उदाहरण ले छुट्टै क्लाइन्ट मार्ग देखाउँछ। एप्लिकेसनको स्वामित्वमा रहेको अनुकूलनका लागि कुन कन्स्ट्रक्टरले प्रत्येक नियन्त्रण र डेटा socket खोल्छ पहिचान गर्नुहोस् र त्यसले प्रतिस्थापन गर्ने अपस्ट्रिम व्यवहार कायम राख्नुहोस्। सही प्रोक्सी मान तब मात्र उपयोगी हुन्छ जब ती कन्स्ट्रक्टरहरूले यसलाई वास्तवमै प्रयोग गर्छन्।