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 ਪਾਸਵਰਡ ਬਦਲਣ ਨਾਲ ਪੈਸਿਵ ਡੇਟਾ ਪੋਰਟ ਨੂੰ ਰੱਦ ਕਰਨ ਵਾਲੀ ਪ੍ਰੌਕਸੀ ਨੀਤੀ ਹੱਲ ਨਹੀਂ ਹੁੰਦੀ।

ਸੰਬੰਧਿਤ ਲੇਖ