ການດາວໂຫຼດ FTP ຜ່ານ SOCKS ດ້ວຍ PycURL
ໃຫ້ libcurl ຈັດການການເຊື່ອມຕໍ່ຄວບຄຸມ ແລະ ຂໍ້ມູນແບບ passive ຂອງການດາວໂຫຼດ FTP ຜ່ານ proxy 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 ແມ່ນກະແສຜົນລັບແບບ binary ທີ່ເປີດແລ້ວ. ເວລາກຳນົດແມ່ນຂອບເຂດຕົວຢ່າງທີ່ເລືອກຕາມຂະໜາດໄຟລ໌ ແລະ ການເຊື່ອມຕໍ່ທີ່ຄາດຫວັງ. ສຳລັບຊັບພະຍາກອນ FTP ສາທາລະນະທີ່ອະນຸຍາດໃຫ້ມີຕົວກາງສາທາລະນະ, ລາຍຊື່ proxy SOCKS5 ສະເໜີຜູ້ສະໝັກສຳລັບ URL proxy; ກວດສອບວ່າ node ທີ່ເລືອກອະນຸຍາດທັງປາຍທາງຄວບຄຸມ ແລະ ປາຍທາງຂໍ້ມູນ passive.
socks5h ມອບໃຫ້ proxy SOCKS ແກ້ໄຂຊື່ເຈົ້າພາບປາຍທາງ. NOPROXY ຫວ່າງເປົ່າຢ່າງຊັດເຈນ ເພື່ອບໍ່ໃຫ້ການຕັ້ງຄ່າສະພາບແວດລ້ອມ no_proxy ທີ່ສືບທອດມາຂ້າມເສັ້ນທາງຂອງການສົ່ງຕໍ່ນີ້.
ປະໄວ້ FTP ແບບ active ໃຫ້ປິດຢູ່: ມັນຄາດຫວັງການເຊື່ອມຕໍ່ເຂົ້າຈາກເຊີບເວີ ແລະ ບໍ່ສາມາດໃຊ້ໄດ້ໃນໂໝດ proxy ນີ້. ນະໂຍບາຍຂາອອກຂອງ proxy ຕ້ອງອະນຸຍາດ FTP control port ແລະ passive data port ທີ່ເລືອກສຳລັບການສົ່ງຕໍ່. ດັ່ງນັ້ນ ການເຂົ້າສູ່ລະບົບສຳເລັດພຽງຢ່າງດຽວບໍ່ໄດ້ພິສູດວ່າສາມາດດາວໂຫຼດໄຟລ໌ໄດ້.
ເມື່ອຕ້ອງການການພິສູດຕົວຕົນ, ໃຊ້ PROXYUSERNAME ແລະ PROXYPASSWORD ຂອງ PycURL ສຳລັບຕົວກາງ; ຂໍ້ມູນປະຈຳຕົວຂອງເຊີບເວີ FTP ເປັນຂອງການເຊື່ອມຕໍ່ FTP.