PycURL stel libcurl se FTP- en SOCKS-ondersteuning deur een oordraghandvatsel beskikbaar. Vir ’n passiewe FTP-aflaai kan die toepassing beide die beheerverbinding en die aparte databinding aan daardie implementering oorlaat.

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 is die toepassing se FTP-bron-URL, en output is ’n reeds oopgemaakte binêre uitvoerstroom. Die tydperke is voorbeeldlimiete wat volgens die verwagte lêergrootte en verbinding gekies word. Vir ’n openbare FTP-bron waar openbare tussengangers toegelaat word, bied die SOCKS5-proxylys kandidate vir die proxy-URL; kontroleer dat die gekose nodus beide die beheer- en passiewe databestemmings toelaat.

socks5h delegeer die oplossing van die bestemming se gasheernaam aan die SOCKS-proxy. NOPROXY is doelbewus leeg sodat ’n geërfde no_proxy-omgewingsinstelling nie die roete vir hierdie oordrag omseil nie.

Los aktiewe FTP gedeaktiveer: dit verwag ’n inkomende bedienerverbinding en is met hierdie proxymodus onbeskikbaar. Die proxy se uitgaande beleid moet die FTP-beheerpoort en die passiewe datapoort wat vir die oordrag gekies is, toelaat. Suksesvolle aanmelding alleen bewys dus nie dat die lêer afgelaai kan word nie.

Wanneer verifikasie nodig is, gebruik PycURL se PROXYUSERNAME en PROXYPASSWORD vir die tussenganger; FTP-bedienerbewyse hoort by die FTP-verbinding.

Verwante artikels