PycURL-тэй SOCKS-оор FTP татах
libcurl-д FTP татах үйлдлийн удирдлагын болон идэвхгүй өгөгдлийн холболтыг SOCKS5 проксигоор удирдуулах.
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 холболтод хамаарна.