Apache Commons Net ನಲ್ಲಿ HTTP CONNECT ಪ್ರಾಕ್ಸಿ ಮೂಲಕ FTP ಗಾಗಿ FTPHTTPClient ಇದೆ. ಅದರ ಉಪಯುಕ್ತ ವೈಶಿಷ್ಟ್ಯವೆಂದರೆ ಕೇವಲ FTP ಲಾಗಿನ್ ಪೋರ್ಟ್ ತಲುಪುವುದಲ್ಲ: ಪಟ್ಟಿಗಳು ಮತ್ತು ಫೈಲ್ ವರ್ಗಾವಣೆಗಳು ಬಳಸುವ ನಿಷ್ಕ್ರಿಯ ಡೇಟಾ ಸಂಪರ್ಕಗಳಿಗೂ ಇದು ಪ್ರಾಕ್ಸಿ ಸುರಂಗಗಳನ್ನು ಸ್ಥಾಪಿಸುತ್ತದೆ.

ಕನ್ಸ್ಟ್ರಕ್ಟರ್ ಪ್ರಾಕ್ಸಿ ಎಂಡ್ಪಾಯಿಂಟ್ ಮತ್ತು ಐಚ್ಛಿಕ ಪ್ರಾಕ್ಸಿ ರುಜುವಾತುಗಳನ್ನು ಸ್ವೀಕರಿಸುತ್ತದೆ. 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();
    }
}

ಈ ವರ್ಗಾವಣೆ ತುಣುಕು Commons Net ನ FTP ಆಮದುಗಳು, java.io.IOException, ಅಪ್ಲಿಕೇಶನ್ ಒದಗಿಸಿದ ರುಜುವಾತು ಚರಗಳು ಮತ್ತು ಕರೆಗಾರನ ಮಾಲೀಕತ್ವದ ಔಟ್ಪುಟ್ ಸ್ಟ್ರೀಮ್ ಅನ್ನು ಊಹಿಸುತ್ತದೆ. remoteFile ಸರ್ವರ್-ಬದಿಯ ಉದ್ದೇಶಿತ ಫೈಲ್ನಾಮವಾಗಿದೆ. ಅಪ್ಲಿಕೇಶನ್ ಸೂಕ್ತ ಸಮಯದಲ್ಲಿ ತನ್ನ ಔಟ್ಪುಟ್ ಸ್ಟ್ರೀಮ್ ಅನ್ನೂ ಮುಚ್ಚಬೇಕು.

ಸಂಪರ್ಕದ ನಂತರ ಮತ್ತು ಡೇಟಾ ಕಾರ್ಯಾಚರಣೆಯ ಮೊದಲು ನಿಷ್ಕ್ರಿಯ ಮೋಡ್ ಅನ್ನು ಹೊಂದಿಸಿ. FTPHTTPClient ನ ಅನುಷ್ಠಾನವು ಸಕ್ರಿಯ ಮೋಡ್ನಲ್ಲಿ ಡೇಟಾ ಸಂಪರ್ಕಗಳನ್ನು ತಿರಸ್ಕರಿಸುತ್ತದೆ. ನಿಷ್ಕ್ರಿಯ ಮೋಡ್ನಲ್ಲಿ ಅದು FTP ಯೊಂದಿಗೆ ಡೇಟಾ ಎಂಡ್ಪಾಯಿಂಟ್ ಮಾಡಿ ಮಾತುಕತೆ ನಡೆಸಿ HTTP ಪ್ರಾಕ್ಸಿಗೆ ಇನ್ನೊಂದು ಸಂಪರ್ಕ ತೆರೆಯುತ್ತದೆ, ನಂತರ ಆ ಎಂಡ್ಪಾಯಿಂಟ್ಗೆ CONNECT ಸುರಂಗವನ್ನು ವಿನಂತಿಸುತ್ತದೆ.

ಆ ಎರಡನೇ ಸುರಂಗವು ಸಾಮಾನ್ಯ ಮಿತಿಯನ್ನು ವಿವರಿಸುತ್ತದೆ: FTP ನಿಯಂತ್ರಣ ಪೋರ್ಟ್ಗೆ ಪ್ರಾಕ್ಸಿ ಅನುಮತಿ ಸಾಕಾಗುವುದಿಲ್ಲ. ಅನುಮತಿಸಲಾದ ಗಮ್ಯಸ್ಥಾನಗಳು ಮತ್ತು ಪೋರ್ಟ್ಗಳು ಸರ್ವರ್ನ ನಿಷ್ಕ್ರಿಯ ಡೇಟಾ ಎಂಡ್ಪಾಯಿಂಟ್ಗಳನ್ನು ಒಳಗೊಂಡಿರಬೇಕು. ಯಶಸ್ವಿ ಸ್ವಾಗತ ಮತ್ತು ಲಾಗಿನ್ ನಿಯಂತ್ರಣ ಮಾರ್ಗ ಕೆಲಸ ಮಾಡಿದೆ ಎಂದು ಮಾತ್ರ ಸಾಬೀತುಪಡಿಸುತ್ತವೆ.

ಪ್ರಾಕ್ಸಿ ಬಳಕೆದಾರಹೆಸರು ಮತ್ತು ಪಾಸ್ವರ್ಡ್ ಎರಡೂ ಇದ್ದಾಗ ಅನುಷ್ಠಾನವು Basic ಪ್ರಾಕ್ಸಿ ದೃಢೀಕರಣವನ್ನು ಒದಗಿಸುತ್ತದೆ. ಇದು FTP USER/PASS ವಿನಿಮಯಕ್ಕಿಂತ ಭಿನ್ನವಾಗಿದೆ. ಬೇರೆ ದೃಢೀಕರಣ ಕಾರ್ಯವಿಧಾನ ಬೇಕಾದ ಪ್ರಾಕ್ಸಿಗೆ ಹೊಂದಿಕೊಳ್ಳುವ ಕನೆಕ್ಟರ್ ಬೇಕು; ಕನ್ಸ್ಟ್ರಕ್ಟರ್ ಪ್ರತಿ ಸ್ಕೀಮ್ ಅನ್ನು ಲಭ್ಯವಾಗಿಸುವುದಿಲ್ಲ.

Commons Net ಈ ವರ್ಗವನ್ನು ಪ್ರಾಯೋಗಿಕ ಎಂದು ದಾಖಲಿಸುತ್ತದೆ, ಆದ್ದರಿಂದ ಅಳವಡಿಸಿಕೊಳ್ಳುವ ಮೊದಲು ಅಪ್ಲಿಕೇಶನ್ ಮತ್ತು ಪ್ರಾಕ್ಸಿ ಅಗತ್ಯಗಳ ವಿರುದ್ಧ ಮೌಲ್ಯಮಾಪನ ಮಾಡಿ. ಇದು FTP ಕ್ಲೈಂಟ್, FTPS ಅಥವಾ SFTP ಕ್ಲೈಂಟ್ ಅಲ್ಲ. SOCKS ಸೇವೆ ಲಭ್ಯವಿದ್ದರೆ FTPS ಗೆ FTPSClient ನ ಸಾಕೆಟ್-ಪ್ರಾಕ್ಸಿ ಇಂಟರ್ಫೇಸ್ ಪ್ರತ್ಯೇಕ ಕ್ಲೈಂಟ್ ಮಾರ್ಗವಾಗಿದೆ. CONNECT ಮಾರ್ಗವನ್ನು ಒದಗಿಸುತ್ತದೆ ಮತ್ತು ತಾನೇ FTP ರುಜುವಾತುಗಳನ್ನು ಅಥವಾ ಫೈಲ್ ವಿಷಯವನ್ನು ಗುಪ್ತಲಿಪಿಗೊಳಿಸುವುದಿಲ್ಲ.

ದೋಷಗಳನ್ನು ಅವು ಉತ್ಪಾದಿಸಿದ ಹಂತಕ್ಕೆ ಜೋಡಿಸಿ ಇರಿಸಿ: ಸುರಂಗ ಸಿದ್ಧತೆಯ ಸಮಯದಲ್ಲಿ HTTP ತಿರಸ್ಕಾರ, FTP ಲಾಗಿನ್ ನಿರಾಕರಣೆ, ಅಥವಾ FTP/ಡೇಟಾ ವರ್ಗಾವಣೆ ವೈಫಲ್ಯ. FTP ಪಾಸ್ವರ್ಡ್ ಬದಲಾಯಿಸುವುದರಿಂದ ನಿಷ್ಕ್ರಿಯ ಡೇಟಾ ಪೋರ್ಟ್ ಅನ್ನು ತಿರಸ್ಕರಿಸುವ ಪ್ರಾಕ್ಸಿ ನೀತಿಯನ್ನು ಪರಿಹರಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ.

ಸಂಬಂಧಿತ ಲೇಖನಗಳು