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 کنکشن سے متعلق ہیں۔