PycURL inaonyesha msaada wa FTP na SOCKS wa libcurl kupitia kishikio kimoja cha uhamishaji. Katika upakuaji tulivu wa FTP, programu inaweza kuachia muunganisho wa udhibiti na muunganisho wa data tofauti kwa utekelezaji huo.

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 ni URL ya rasilimali ya FTP ya programu, na output ni mtiririko wa pato la binary uliofunguliwa tayari. Vikomo vya muda ni mipaka ya mfano ya kuchagua kulingana na ukubwa wa faili na muunganisho unaotarajiwa. Kwa rasilimali ya FTP ya umma ambapo waamuzi wa umma wanaruhusiwa, orodha ya proksi za SOCKS5 inatoa wagombea wa URL ya proksi; hakikisha nodi iliyochaguliwa inaruhusu lengo la udhibiti na lengo la data tulivu.

socks5h inakabidhi utatuzi wa jina la mwenyeji lengwa kwa proksi ya SOCKS. NOPROXY ni tupu kwa makusudi ili mpangilio wa mazingira wa no_proxy uliorithiwa usikwepa njia ya uhamishaji huu.

Acha FTP hai imezimwa: inatarajia muunganisho unaoingia kutoka kwa seva na haipatikani katika hali hii ya proksi. Sera ya pato ya proksi lazima iruhusu lango la udhibiti la FTP na lango la data tulivu lililochaguliwa kwa uhamishaji. Hivyo kuingia kwa mafanikio pekee hakuthibitishi kuwa faili inaweza kupakuliwa.

Inapohitajika uthibitishaji, tumia PROXYUSERNAME na PROXYPASSWORD za PycURL kwa mwamuzi; vitambulisho vya seva ya FTP ni vya muunganisho wa FTP.

Makala zinazohusiana