Commons Net FTPHTTPClient: ອຸໂມງ HTTP proxy ສຳລັບ FTP ແບບ passive
ສົ່ງການຄວບຄຸມ FTP ແລະ ການເຊື່ອມຕໍ່ຂໍ້ມູນແບບ passive ຜ່ານ HTTP proxy ດ້ວຍ client ພິເສດຂອງ Commons Net.
Apache Commons Net ມີ FTPHTTPClient ສຳລັບ FTP ຜ່ານ HTTP CONNECT proxy. ລັກສະນະທີ່ເປັນປະໂຫຍດຂອງມັນບໍ່ພຽງແຕ່ການໄປຮອດພອດເຂົ້າສູ່ລະບົບ FTP: ມັນຍັງສ້າງອຸໂມງ proxy ສຳລັບການເຊື່ອມຕໍ່ຂໍ້ມູນແບບ passive ທີ່ໃຊ້ໂດຍລາຍການ ແລະ ການໂອນໄຟລ໌.
ຕົວສ້າງຮັບຈຸດປາຍທາງຂອງ proxy ແລະ ຂໍ້ມູນຢືນຢັນ proxy ທີ່ເປັນທາງເລືອກ. ເຊີບເວີ FTP ຍັງຄົງເປັນອາກິວເມັນຂອງ connect, ແລະ login ຮັບບັນຊີ FTP:
FTPHTTPClient ftp = new FTPHTTPClient(
"proxy.example.net", 8080, proxyUser, proxyPassword
);
try {
ftp.connect("ftp.example.net", 21);
if (!FTPReply.isPositiveCompletion(ftp.getReplyCode())) {
throw new IOException(ftp.getReplyString());
}
if (!ftp.login(ftpUser, ftpPassword)) {
throw new IOException(ftp.getReplyString());
}
ftp.enterLocalPassiveMode();
if (!ftp.setFileType(FTP.BINARY_FILE_TYPE)
|| !ftp.retrieveFile(remoteFile, output)) {
throw new IOException(ftp.getReplyString());
}
ftp.logout();
} finally {
if (ftp.isConnected()) {
ftp.disconnect();
}
}
ສ່ວນຂອງການໂອນນີ້ສົມມຸດວ່າມີການນຳເຂົ້າ FTP ຂອງ Commons Net, java.io.IOException, ຕົວແປຂໍ້ມູນຢືນຢັນທີ່ແອັບພລິເຄຊັນສະໜອງ ແລະ ສະຕຣີມຜົນອອກທີ່ຜູ້ເອີ້ນເປັນເຈົ້າຂອງ. remoteFile ແມ່ນຊື່ໄຟລ໌ທີ່ຕັ້ງໃຈໄວ້ຝັ່ງເຊີບເວີ. ແອັບພລິເຄຊັນຕ້ອງປິດສະຕຣີມຜົນອອກຂອງຕົນໃນຈຸດທີ່ເໝາະສົມນຳ.
ຕັ້ງໂໝດ passive ຫຼັງຈາກເຊື່ອມຕໍ່ ແລະ ກ່ອນການດຳເນີນການຂໍ້ມູນ. ການຈັດຕັ້ງ FTPHTTPClient ປະຕິເສດການເຊື່ອມຕໍ່ຂໍ້ມູນໃນໂໝດ active. ໃນໂໝດ passive ມັນເຈລະຈາຈຸດປາຍທາງຂໍ້ມູນກັບ FTP ແລະ ເປີດການເຊື່ອມຕໍ່ອີກອັນໜຶ່ງໄປຫາ HTTP proxy, ແລ້ວຮ້ອງຂໍອຸໂມງ CONNECT ໄປຫາຈຸດປາຍທາງນັ້ນ.
ອຸໂມງທີສອງນັ້ນອະທິບາຍຂອບເຂດທົ່ວໄປ: ການອະນຸຍາດ proxy ສຳລັບພອດຄວບຄຸມ FTP ຍັງບໍ່ພຽງພໍ. ປາຍທາງ ແລະ ພອດທີ່ໄດ້ຮັບອະນຸຍາດຕ້ອງລວມຈຸດປາຍທາງຂໍ້ມູນແບບ passive ຂອງເຊີບເວີ. ການທັກທາຍ ແລະ ການເຂົ້າສູ່ລະບົບທີ່ສຳເລັດພຽງແຕ່ພິສູດວ່າເສັ້ນທາງຄວບຄຸມໄດ້ເຮັດວຽກ.
ການຈັດຕັ້ງສະໜອງການຢືນຢັນ proxy ແບບ Basic ເມື່ອມີທັງຊື່ຜູ້ໃຊ້ ແລະ ລະຫັດຜ່ານຂອງ proxy. ນີ້ແຕກຕ່າງຈາກການແລກປ່ຽນ USER/PASS ຂອງ FTP. proxy ທີ່ຕ້ອງການກົນໄກຢືນຢັນອື່ນຕ້ອງການ connector ທີ່ເຂົ້າກັນໄດ້; ຕົວສ້າງບໍ່ໄດ້ເຮັດໃຫ້ທຸກຮູບແບບສາມາດໃຊ້ໄດ້.
Commons Net ບັນທຶກຄລາສນີ້ວ່າເປັນການທົດລອງ, ດັ່ງນັ້ນຈົ່ງປະເມີນມັນທຽບກັບຄວາມຕ້ອງການຂອງແອັບພລິເຄຊັນ ແລະ proxy ກ່ອນຮັບເອົາ. ມັນເປັນ client FTP, ບໍ່ແມ່ນ client FTPS ຫຼື SFTP. ສຳລັບ FTPS ທີ່ມີບໍລິການ SOCKS, ອິນເຕີເຟສ socket-proxy ຂອງ FTPSClient ເປັນເສັ້ນທາງ client ແຍກຕ່າງຫາກ. CONNECT ສະໜອງເສັ້ນທາງ ແລະ ບໍ່ໄດ້ເຂົ້າລະຫັດຂໍ້ມູນຢືນຢັນ FTP ຫຼື ເນື້ອຫາໄຟລ໌ດ້ວຍຕົນເອງ.
ເກັບຂໍ້ຜິດພາດໄວ້ກັບຂັ້ນຕອນທີ່ເຮັດໃຫ້ເກີດ: ການປະຕິເສດ HTTP ລະຫວ່າງການຕັ້ງອຸໂມງ, ການປະຕິເສດການເຂົ້າສູ່ລະບົບ FTP, ຫຼື ຄວາມລົ້ມເຫຼວຂອງການໂອນ FTP/ຂໍ້ມູນ. ການປ່ຽນລະຫັດຜ່ານ FTP ບໍ່ສາມາດແກ້ໄຂນະໂຍບາຍ proxy ທີ່ປະຕິເສດພອດຂໍ້ມູນແບບ passive ໄດ້.