Shkarkim FTP përmes SOCKS me PycURL
Lëreni libcurl të trajtojë lidhjen e kontrollit dhe lidhjen pasive të të dhënave të një shkarkimi FTP përmes një proxy SOCKS5.
PycURL ekspozon mbështetjen e libcurl për FTP dhe SOCKS përmes një doreze të vetme transferimi. Në një shkarkim pasiv FTP, aplikacioni mund t'i lërë asaj implementimi si lidhjen e kontrollit ashtu edhe lidhjen e të dhënave të veçantë.
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 është URL-ja e burimit FTP të aplikacionit, dhe output është një rrjedhë dalëse binare e hapur tashmë. Afatet kohore janë kufij shembull që zgjidhen sipas madhësisë së pritur të skedarit dhe lidhjes. Për një burim publik FTP ku lejohen ndërmjetës publikë, lista e proxy-ve SOCKS5 ofron kandidatë për URL-në e proxy-t; kontrolloni që nyja e zgjedhur lejon si destinacionin e kontrollit ashtu edhe atë të të dhënave pasive.
socks5h i delegon proxy-t SOCKS zgjidhjen e emrit të hostit të destinacionit. NOPROXY është qëllimisht bosh, që një cilësim mjedisor no_proxy i trashëguar të mos e anashkalojë rrugën për këtë transferim.
Lëreni FTP aktiv të çaktivizuar: pret një lidhje hyrëse nga serveri dhe nuk është i disponueshëm në këtë modalitet proxy. Politika dalëse e proxy-t duhet të lejojë portën e kontrollit FTP dhe portën pasive të të dhënave të zgjedhur për transferimin. Prandaj, vetëm një hyrje e suksesshme nuk provon se skedari mund të shkarkohet.
Kur kërkohet vërtetim, përdorni PROXYUSERNAME dhe PROXYPASSWORD të PycURL për ndërmjetësin; kredencialet e serverit FTP i përkasin lidhjes FTP.