I-PycURL iveza ukusekelwa kwe-FTP ne-SOCKS kwe-libcurl ngesibambo sokudlulisa esisodwa. Ekulandeni nge-FTP okungasebenzi, uhlelo lungashiya kokubili ukuxhumana kokulawula kanye nokuxhumana kwedatha okuhlukile kuleyo mplementesheni.

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()

I-ftp_url iyi-URL yomsuka we-FTP yohlelo, futhi i-output iwukugeleza kokukhipha okunambambili okuvele kuvuliwe. Izikhathi zokulinda ziyimikhawulo eyisibonelo okufanele ikhethwe ngokusho kosayizi wefayela nokuxhumana okulindelekile. Kumsuka we-FTP womphakathi lapho abalamuli bomphakathi bavunyelwe, uhlu lwama-proxy e-SOCKS5 lunikeza abazongenela i-URL ye-proxy; qinisekisa ukuthi inodi ekhethiwe ivumela kokubili indawo yokulawula kanye nendawo yedatha engasebenzi.

I-socks5h idlulisela ukuxazululwa kwegama lomsingathi wendawo ku-SOCKS proxy. I-NOPROXY ishiywe ingenalutho ngamabomu ukuze isilungiselelo semvelo se-no_proxy esizuzwe njengefa singadluli umzila walokhu kudlulisa.

Shiya i-FTP esebenzayo ivaliwe: ilindele ukuxhumana okungena okuvela kuseva futhi ayitholakali kule modi ye-proxy. Inqubomgomo yokuphuma ye-proxy kufanele ivume imbobo yokulawula ye-FTP kanye nembobo yedatha engasebenzi ekhethelwe ukudlulisa. Ngakho-ke ukungena ngempumelelo kuphela akufakazi ukuthi ifayela lingalandwa.

Lapho ukugunyazwa kudingeka, sebenzisa i-PROXYUSERNAME ne-PROXYPASSWORD ye-PycURL kumlamuli; imininingwane yeseva ye-FTP ingeyokuxhumana kwe-FTP.

Izihloko ezihlobene