Chaguo-msingi la PySocks halipeleki ftplib njia nyingine
Fuatilia sockets ambazo ftplib huunda kwa kweli badala ya kudhani kuwa set_default_proxy hubadilisha utekelezaji asilia wa socket katika Python.
socks.set_default_proxy() huhifadhi thamani za chaguo-msingi kwa vitu vya PySocks socksocket vijavyo. Haibadilishi darasa asilia la socket la Python. Kwa hiyo haipeleki ftplib njia nyingine eti kwa sababu tu wito hutokea kabla ya muunganisho wa FTP.
Fuatilia constructors, si kigezo kinachoshikilia URL ya proxy. ftplib huunda muunganisho wa udhibiti na miunganisho ya ziada ya uhamishaji. Katika FTP passive, kuingia kwa mafanikio huthibitisha tu kwamba muunganisho wa udhibiti ulifanya kazi; socket ya data inayotumika kwa orodha au uhamishaji wa faili pia inahitaji njia iliyokusudiwa.
Kichocheo kinachobadilisha socket.socket au kufunga module hufanya jambo lingine zaidi ya kuweka thamani za chaguo-msingi za PySocks. Kinaweza kuathiri maktaba nyingine zinazoshiriki module hiyo. Kurudisha asilia baadaye hakufanyi miunganisho ya wakati mmoja itengane na mabadiliko hayo.
Darasa dogo maalum la ftplib linaweza kufunika njia za muunganisho, lakini sehemu za ndani zilizonakiliwa hubeba dhana za toleo la Python zilipotoka, ikiwa ni pamoja na sentinel za muda wa kusubiri na utunzaji wa itifaki. Masasisho ya maktaba ya kawaida hayasasishi nakala hiyo.
Chagua client inayotunzwa au muunganisho unaotegwa kwa proxy na hali ya FTP inayohitajika. Mfano wa upakuaji wa FTP passive kwa PycURL unaonyesha njia tofauti ya client. Kwa ubadilishaji unaomilikiwa na programu, tambua constructor ipi hufungua kila socket ya udhibiti na data na uhifadhi tabia ya upstream inayoibadilisha. Thamani sahihi ya proxy ni muhimu tu wakati constructors hizo zinatumia kwa kweli.