'n PySocks-verstek herbedraad nie ftplib nie
Volg die sokkette wat ftplib werklik skep, in plaas daarvan om aan te neem dat set_default_proxy Python se ingeboude socket-implementasie verander.
socks.set_default_proxy() stoor verstekwaardes vir toekomstige PySocks-socksocket-objekte. Dit vervang nie Python se ingeboude socket-klas nie. Gevolglik herlei dit nie ftplib bloot omdat die oproep voor 'n FTP-verbinding plaasvind nie.
Volg die konstruktors, nie die veranderlike wat die volmag-URL hou nie. ftplib skep 'n beheerverbinding en bykomende oordragverbindings. Met passiewe FTP bewys 'n suksesvolle aanmelding net dat die beheerverbinding gewerk het; die datasok wat vir 'n lys of lêeroordrag gebruik word, het ook die bedoelde roete nodig.
'n Resep wat socket.socket vervang of 'n module omhul, doen 'n ander aksie as om PySocks-verstekke te stel. Dit kan ander biblioteke raak wat daardie module deel. Om die oorspronklike daarna tydelik te herstel, maak nie gelyktydige verbindings van die wysiging geïsoleer nie.
'n Pasgemaakte ftplib-subklas kan die verbindingsroetes dek, maar gekopieerde binnewerking dra die aannames van die Python-vrystelling waaruit dit kom, insluitend time-out-sentinels en protokolhantering. Bywerkings aan die standaardbiblioteek werk nie die kopie by nie.
Kies 'n onderhoude kliënt of ondersteunde integrasie vir die vereiste volmag en FTP-modus. 'n PycURL-passiewe-FTP-aflaai-voorbeeld illustreer 'n aparte kliëntroete. Vir 'n aanpassing in eie beheer van die toepassing, identifiseer watter konstruktor elke beheer- en datasok oopmaak en behou die stroomop-gedrag wat dit vervang. 'n Korrekte volmagwaarde is slegs nuttig wanneer daardie konstruktors dit werklik gebruik.