Commons Net FTPHTTPClient: निष्क्रिय FTP साठी HTTP प्रॉक्सी बोगदे
Commons Net च्या समर्पित क्लायंटसह HTTP प्रॉक्सीद्वारे FTP नियंत्रण आणि निष्क्रिय डेटा कनेक्शन टनेल करा.
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 पासवर्ड बदलल्याने निष्क्रिय डेटा पोर्ट नाकारणारे प्रॉक्सी धोरण सोडवता येत नाही.