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.

Artikuj të ngjashëm