PycURL-k libcurl-en FTP eta SOCKS euskarria transferentzia-kudeatzaile bakar baten bidez eskaintzen du. FTP deskarga pasiboan, aplikazioak kontrol-konexioa eta datu-konexio bereizia inplementazio horri utz ditzake.

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 aplikazioaren FTP baliabidearen URLa da, eta output jada irekitako irteera-fluxu bitarra. Denbora-mugak espero den fitxategi-tamainaren eta konexioaren arabera aukeratzeko adibidezko mugak dira. Bitartekari publikoak onartzen diren FTP baliabide publiko baterako, SOCKS5 proxy zerrendak proxy URLaren hautagaiak eskaintzen ditu; egiaztatu aukeratutako nodoak kontrol- eta datu pasiboko helmuga biak onartzen dituela.

socks5h-k helmugako ostalari-izenaren ebazpena SOCKS proxyari esleitzen dio. NOPROXY berariaz hutsik dago, heredatutako no_proxy ingurune-ezarpen batek transferentzia honen ibilbidea saihes ez dezan.

Utzi FTP aktiboa desgaituta: zerbitzaritik datorren konexio bat espero du eta ez dago erabilgarri proxy modu honetan. Proxyaren irteera-politikak FTP kontrol-portua eta transferentziarako aukeratutako datu-portu pasiboa onartu behar ditu. Beraz, saioa ondo hastea ez da nahikoa fitxategia deskargatu ahal izateko.

Autentifikazioa behar denean, erabili PycURL-en PROXYUSERNAME eta PROXYPASSWORD bitartekariarentzat; FTP zerbitzariaren kredentzialak FTP konexioarenak dira.

Erlazionatutako artikuluak