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 પાસવર્ડ બદલવાથી નિષ્ક્રિય ડેટા પોર્ટ નકારતી પ્રોક્સી નીતિ ઉકેલી શકાતી નથી.

સંબંધિત લેખો