Commons Net FTPHTTPClient: HTTP-proxy-tunnlar til passivt FTP
Tunnla FTP-stýring og passiv dátusambond gjøgnum ein HTTP-proxy við tí serliga klientinum frá Commons Net.
Apache Commons Net hevur FTPHTTPClient til FTP gjøgnum ein HTTP CONNECT-proxy. Tann nyttiga eginleikin er ikki bert at náa FTP-innritingarportinum: tað setur eisini proxy-tunnlar upp fyri tey passivu dátusambondini, sum listar og fíluflutningar brúka.
Konstruktørin tekur ímóti proxy-endanum og valfríum proxy-innritingarupplýsingum. FTP-ambætarin verður verandi argument til connect, og login tekur ímóti FTP-kontuni:
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();
}
}
Hesin flutningsbúturin gongur út frá FTP-innflutningunum hjá Commons Net, java.io.IOException, upplýsingum um innritingu frá tólmyndini og eini úttaksstreymu, sum kallarin eigur. remoteFile er ætlaða fílnavnið á ambætarasíðuni. Tólmyndin má eisini lata sína úttaksstreymu aftur á rættari stund.
Set passiva støðu eftir sambandið og áðrenn eina dátuviðgerð. Týðingin av FTPHTTPClient vrapar dátusambondum í virkna støðu. Í passivari støðu samráðir hon dátuendan við FTP og letur upp eitt annað samband til HTTP-proxyina og biður so um eina CONNECT-tunnil til tann endan.
Henda onnur tunnilin greiðir frá eini vanligari mark: proxy-loyvi til FTP-stýriportrin er ikki nóg mikið. Tey loyvdu málini og portini skulu fevna um passivu dátuendarnar hjá ambætaranum. Ein góðkend heilsan og innriting prógva bert, at stýrivegurin virkaði.
Týðingin veitir Basic-proxy-sannroynd, tá ið bæði proxy-brúkaranavn og loyniorð eru til staðar. Hetta er ólíkt FTP USER/PASS-útskiftinum. Ein proxy, sum krevur eina aðra sannroyndarhætt, tørvar ein hóskandi kontakt; konstruktørin ger ikki hvørja skipan atkomiliga.
Commons Net skrivar henda flokkin sum royndar; met hann tí ímóti krøvunum hjá tólmyndini og proxyini, áðrenn tú tekur hann í brúk. Hann er ein FTP-klientur, ikki ein FTPS- ella SFTP-klientur. Til FTPS við tænastu SOCKS, er socket-proxy-vegsmótið hjá FTPSClient ein serstakur klientvegur. CONNECT veitir veginn og dulkóðar ikki sjálvt FTP-innritingarupplýsingar ella fílutilfar.
Halt villum knýttum at tí stigi, sum skapti tær: eitt HTTP-avboð undir tunnilskipan, eitt FTP-innritingaravboð ella eitt FTP-/dátaflutningsbrek. At skifta FTP-loyniorðið kann ikki loysa eina proxy-reglu, sum vrapar passiva dátuportinum.