PycURL सँग SOCKS मार्फत FTP डाउनलोड
libcurl लाई SOCKS5 प्रोक्सीमार्फत FTP डाउनलोडको नियन्त्रण र निष्क्रिय डाटा जडानहरू सम्हाल्न दिनुहोस्।
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 जडानसँग सम्बन्धित हुन्।