Commons Net FTPHTTPClient: HTTP-proxygöng fyrir óvirkt FTP
Tengdu FTP-stýringu og óvirkar gagnatengingar í gegnum HTTP-proxy með sérhæfðum biðlara Commons Net.
Apache Commons Net inniheldur FTPHTTPClient fyrir FTP í gegnum HTTP CONNECT-proxy. Gagnlegi eiginleikinn er ekki aðeins að ná FTP-innskráningarportinu: það setur einnig upp proxygöng fyrir óvirku gagnatengingarnar sem listar og skráaflutningar nota.
Smíðin tekur við endapunkti proxysins og valfrjálsum proxyauðkennum. FTP-þjónninn er áfram viðfangið fyrir connect, og login tekur við FTP-reikningnum:
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();
}
}
Þessi flutningsbútur gerir ráð fyrir FTP-innflutningum Commons Net, java.io.IOException, auðkennisbreytum frá forritinu og úttaksstraumi í eigu kallarans. remoteFile er fyrirhugað skráarnafn á þjónshlið. Forritið verður einnig að loka úttaksstraumi sínum á réttum tíma.
Stilltu óvirka stillingu eftir tengingu og fyrir gagnaaðgerð. Útfærsla FTPHTTPClient hafnar gagnatengingum í virkri stillingu. Í óvirkri stillingu semur hún um gagnaendapunktinn við FTP og opnar aðra tengingu við HTTP-proxyið og biður þá um CONNECT-göng að þeim endapunkti.
Þessi önnur göng skýra algeng mörk: proxyheimild fyrir FTP-stýriportið er ekki nóg. Leyfðir áfangastaðir og port verða að innihalda óvirku gagnaendapunkta þjónsins. Heilsa og innskráning sem tekst sanna aðeins að stýrileiðin hafi virkað.
Útfærslan veitir Basic proxyauðkenningu þegar bæði notandanafn og lykilorð proxysins eru til staðar. Það er frábrugðið FTP USER/PASS-skiptunum. Proxy sem krefst annarrar auðkenningaraðferðar þarf samhæfðan tengi; smíðin gerir ekki hvert kerfi aðgengilegt.
Commons Net skrásetur þennan flokk sem tilrauna, svo metið hann út frá kröfum forritsins og proxysins áður en hann er tekinn upp. Hann er FTP-biðlari, ekki FTPS- eða SFTP-biðlari. Fyrir FTPS með tiltækri SOCKS-þjónustu er socket-proxyviðmót FTPSClient sérstök biðlaraleið. CONNECT veitir leiðina og dulkóðar ekki sjálft FTP-auðkenni eða skráarefni.
Haltu villum tengdum því stigi sem olli þeim: HTTP-höfnun við uppsetningu ganganna, synjun FTP-innskráningar eða bilun í FTP-/gagnaflutningi. Að skipta um FTP-lykilorð getur ekki leyst proxyreglu sem hafnar óvirka gagnaportinu.