Apache Commons Net yana ƙunshe da FTPHTTPClient don FTP ta hanyar proxy HTTP CONNECT. Amfanin sifarsa ba wai kawai isa tashar shiga FTP ba: yana kuma kafa hanyoyin tunnel na proxy don haɗin bayanan da ba sa aiki waɗanda jerin sunayen da canjin fayiloli ke amfani da su.

Mai gini yana karɓar ƙarshen proxy da bayanan shaidar proxy na zaɓi. Sabar FTP ta kasance hujja ga connect, kuma login yana karɓar asusun 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();
    }
}

Wannan ɓangaren canja wurin yana ɗaukan shigo da FTP na Commons Net, java.io.IOException, masu canjin shaidar da aikace-aikacen ya bayar da kuma magudanar fitarwa mallakar mai kira. remoteFile shine sunan fayil ɗin da ake nufi a gefen sabar. Aikace-aikacen dole ne kuma ya rufe magudanar fitarwarsa a lokacin da ya dace.

Saita yanayin da ba ya aiki bayan haɗawa da kafin aikin bayanai. Aiwatar da FTPHTTPClient yana ƙin haɗin bayanai a yanayin aiki. A yanayin da ba ya aiki, yana tattaunawa da FTP kan ƙarshen bayanai kuma yana buɗe wata haɗi zuwa proxy HTTP, sannan yana neman tunnel CONNECT zuwa wannan ƙarshen.

Wannan tunnel na biyu yana bayyana iyaka gama gari: izinin proxy ga tashar sarrafa FTP bai isa ba. Wuraren da aka yarda da tashoshin dole su haɗa da ƙarshen bayanan da ba sa aiki na sabar. Gaisuwa da shiga cikin nasara suna tabbatar ne kawai cewa hanyar sarrafawa ta yi aiki.

Aiwatar tana bayar da tabbatarwar proxy ta Basic yayin da duka sunan mai amfani da kalmar sirrin proxy suke nan. Wannan ya bambanta da musayar FTP USER/PASS. Proxy da ke buƙatar wata hanyar tabbatarwa yana buƙatar mai haɗa madaidaici; mai gini ba ya samar da kowane tsari.

Commons Net ya rubuta wannan aji a matsayin gwaji, don haka auna shi da bukatun aikace-aikacen da proxy kafin ɗauka. Abokin ciniki ne na FTP, ba abokin ciniki na FTPS ko SFTP ba. Don FTPS tare da sabis na SOCKS da ake da shi, hanyar socket-proxy ta FTPSClient wata hanya ce ta dabam. CONNECT yana bayar da hanya kuma bai kansa yana ɓoye shaidar FTP ko abun cikin fayiloli ba.

Riƙe kurakurai da matakin da ya haifar da su: ƙin HTTP yayin saita tunnel, ƙin shiga FTP, ko gazawar canjin FTP/bayanai. Maye gurbin kalmar sirrin FTP ba zai iya warware manufar proxy da ke ƙin tashar bayanan da ba ta aiki ba.

Labarai masu alaƙa