PycURL એક ટ્રાન્સફર હેન્ડલ દ્વારા libcurl નું FTP અને SOCKS સમર્થન પ્રદાન કરે છે. નિષ્ક્રિય FTP ડાઉનલોડમાં એપ્લિકેશન નિયંત્રણ જોડાણ અને અલગ ડેટા જોડાણ બંને તે અમલીકરણને સોંપી શકે છે.

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 એ એપ્લિકેશનનું FTP સંસાધન URL છે, અને output એ પહેલેથી ખુલ્લો બાઇનરી આઉટપુટ સ્ટ્રીમ છે. ટાઇમઆઉટ એ અપેક્ષિત ફાઇલ કદ અને જોડાણ પ્રમાણે પસંદ કરવાની ઉદાહરણ મર્યાદાઓ છે. જ્યાં જાહેર મધ્યસ્થીઓને મંજૂરી છે એવા જાહેર FTP સંસાધન માટે, SOCKS5 પ્રોક્સી સૂચિ પ્રોક્સી URL માટે ઉમેદવારો આપે છે; તપાસો કે પસંદ કરેલ નોડ નિયંત્રણ અને નિષ્ક્રિય ડેટા બંને ગંતવ્યોને મંજૂરી આપે છે.

socks5h ગંતવ્ય હોસ્ટનામનું નિરાકરણ SOCKS પ્રોક્સીને સોંપે છે. NOPROXY ઇરાદાપૂર્વક ખાલી છે જેથી વારસાગત no_proxy પર્યાવરણ સેટિંગ આ ટ્રાન્સફરનો માર્ગ ટાળે નહીં.

સક્રિય FTP નિષ્ક્રિય જ રાખો: તે સર્વરથી આવતા જોડાણની અપેક્ષા રાખે છે અને આ પ્રોક્સી મોડમાં ઉપલબ્ધ નથી. પ્રોક્સીની આઉટબાઉન્ડ નીતિએ FTP નિયંત્રણ પોર્ટ અને ટ્રાન્સફર માટે પસંદ કરેલ નિષ્ક્રિય ડેટા પોર્ટને મંજૂરી આપવી જોઈએ. તેથી ફક્ત સફળ લોગિન એ સાબિત કરતું નથી કે ફાઇલ ડાઉનલોડ કરી શકાય છે.

જ્યારે પ્રમાણીકરણની જરૂર હોય, ત્યારે મધ્યસ્થી માટે PycURL ના PROXYUSERNAME અને PROXYPASSWORD વાપરો; FTP સર્વરની ઓળખ FTP જોડાણની છે.

સંબંધિત લેખો