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.

ບົດຄວາມທີ່ກ່ຽວຂ້ອງ