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 കണക്ഷന്റേതാണ്.

അനുബന്ധ ലേഖനങ്ങൾ