ការទាញយក FTP តាមរយៈ SOCKS ជាមួយ PycURL
អនុញ្ញាតឱ្យ libcurl គ្រប់គ្រងការតភ្ជាប់ត្រួតពិនិត្យ និងទិន្នន័យ passive នៃការទាញយក FTP តាមរយៈប្រូកស៊ី SOCKS5។
PycURL បង្ហាញការគាំទ្រ FTP និង SOCKS របស់ libcurl តាមរយៈ handle ផ្ទេរតែមួយ។ ក្នុងការទាញយក FTP បែប passive កម្មវិធីអាចប្រគល់ទាំងការតភ្ជាប់ត្រួតពិនិត្យ និងការតភ្ជាប់ទិន្នន័យដោយឡែកឱ្យការអនុវត្តនោះ។
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 គឺជា URL ធនធាន FTP របស់កម្មវិធី ហើយ output គឺជាស្ទ្រីមទិន្នផលប៊ីនហ្គារីដែលបើករួចហើយ។ ពេលវេលាកំណត់ គឺជាដែនកំណត់ឧទាហរណ៍ដែលត្រូវជ្រើសតាមទំហំឯកសារ និងការតភ្ជាប់ដែលរំពឹងទុក។ សម្រាប់ធនធាន FTP សាធារណៈដែលអនុញ្ញាតឱ្យមានអន្តរការីសាធារណៈ បញ្ជីប្រូកស៊ី SOCKS5 ផ្តល់បេក្ខជនសម្រាប់ URL ប្រូកស៊ី។ ពិនិត្យថាថ្នាំងដែលបានជ្រើសអនុញ្ញាតទាំងគោលដៅត្រួតពិនិត្យ និងគោលដៅទិន្នន័យ passive។
socks5h ប្រគល់ការដោះស្រាយឈ្មោះម៉ាស៊ីនគោលដៅឱ្យប្រូកស៊ី SOCKS។ NOPROXY ទទេដោយចេតនា ដើម្បីកុំឱ្យការកំណត់បរិស្ថាន no_proxy ដែលទទួលមរតករំលងផ្លូវសម្រាប់ការផ្ទេរនេះ។
ទុក FTP សកម្មឱ្យបិទ៖ វារំពឹងការតភ្ជាប់ចូលពីម៉ាស៊ីនមេ ហើយមិនអាចប្រើបានក្នុងរបៀបប្រូកស៊ីនេះ។ គោលនយោបាយចេញរបស់ប្រូកស៊ីត្រូវអនុញ្ញាតច្រកត្រួតពិនិត្យ FTP និងច្រកទិន្នន័យ passive ដែលបានជ្រើសសម្រាប់ការផ្ទេរ។ ដូច្នេះការចូលដោយជោគជ័យតែម្នាក់ឯងមិនបញ្ជាក់ថាអាចទាញយកឯកសារបានទេ។
នៅពេលត្រូវការផ្ទៀងផ្ទាត់ សូមប្រើ PROXYUSERNAME និង PROXYPASSWORD របស់ PycURL សម្រាប់អន្តរការី។ ព័ត៌មានសម្គាល់ម៉ាស៊ីនមេ FTP ជាកម្មសិទ្ធិរបស់ការតភ្ជាប់ FTP។