PycURL atklāj libcurl FTP un SOCKS atbalstu caur vienu pārsūtīšanas rokturi. Pasīvā FTP lejupielādē lietotne var atstāt gan vadības savienojumu, gan atsevišķo datu savienojumu šai realizācijai.

import pycurl

transfer = pycurl.Curl()
try:
    transfer.setopt(pycurl.URL, ftp_url)
    transfer.setopt(pycurl.PROXY, "socks5h://proxy.example.net:1080")
    transfer.setopt(pycurl.NOPROXY, "")
    transfer.setopt(pycurl.WRITEDATA, output)
    transfer.setopt(pycurl.CONNECTTIMEOUT, 10)
    transfer.setopt(pycurl.TIMEOUT, 60)
    transfer.perform()
finally:
    transfer.close()

ftp_url ir lietotnes FTP resursa URL, un output ir jau atvērta binārā izvades plūsma. Taimauti ir piemēru ierobežojumi, kas jāizvēlas atbilstoši gaidāmajam faila izmēram un savienojumam. Publiskam FTP resursam, kur atļauti publiski starpnieki, SOCKS5 starpniekserveru saraksts piedāvā kandidātus starpniekservera URL; pārbaudiet, vai izvēlētais mezgls atļauj gan vadības, gan pasīvo datu galamērķi.

socks5h uztic SOCKS starpniekam galamērķa resursdatora nosaukuma atrisināšanu. NOPROXY ir apzināti tukšs, lai mantotais no_proxy vides iestatījums neapietu šīs pārsūtīšanas maršrutu.

Atstājiet aktīvo FTP izslēgtu: tas gaida ienākošu servera savienojumu un šajā starpniekservera režīmā nav pieejams. Starpniekservera izejošās plūsmas politikai jāatļauj FTP vadības ports un pārsūtīšanai izvēlētais pasīvo datu ports. Tāpēc vien sekmīga pieteikšanās nepierāda, ka failu var lejupielādēt.

Kad nepieciešama autentifikācija, starpniekam izmantojiet PycURL PROXYUSERNAME un PROXYPASSWORD; FTP servera akreditācijas dati pieder FTP savienojumam.

Saistītie raksti