Podrazumevana vrednost PySocks-a ne preusmerava ftplib
Pratite socket-e koje ftplib zaista stvara umesto da pretpostavite da set_default_proxy menja ugrađenu socket implementaciju u Python-u.
socks.set_default_proxy() čuva podrazumevane vrednosti za buduće PySocks socksocket objekte. Ne zamenjuje ugrađenu socket klasu u Python-u. Zato ne preusmerava ftplib samo zato što se poziv dešava pre FTP veze.
Pratite konstruktore, a ne promenljivu koja čuva URL proksija. ftplib stvara kontrolnu vezu i dodatne veze za prenos. Kod pasivnog FTP-a uspešna prijava dokazuje samo da je kontrolna veza radila; i socket za podatke koji se koristi za spisak ili prenos datoteke mora ići predviđenom rutom.
Recept koji zamenjuje socket.socket ili obavija modul čini nešto drugo osim postavljanja PySocks podrazumevanih vrednosti. Može uticati na druge biblioteke koje dele taj modul. Kasnije vraćanje originala ne čini istovremene veze izolovanim od te izmene.
Prilagođena potklasa ftplib-a može pokriti puteve veze, ali kopirana unutrašnjost nosi pretpostavke izdanja Python-a iz kojeg potiče, uključujući sentinele za tajmaut i rukovanje protokolom. Ažuriranja standardne biblioteke ne ažuriraju kopiju.
Izaberite održavan klijent ili podržanu integraciju za potrebni proksi i FTP režim. Primer pasivnog FTP preuzimanja sa PycURL-om prikazuje poseban put klijenta. Za prilagođavanje koje pripada aplikaciji utvrdite koji konstruktor otvara svaki kontrolni i socket za podatke i sačuvajte ponašanje koje ono zamenjuje. Ispravna vrednost proksija korisna je samo kada ti konstruktori zaista koriste tu vrednost.