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 पासवर्ड बदल्नाले निष्क्रिय डेटा पोर्ट अस्वीकार गर्ने प्रोक्सी नीति समाधान गर्न सक्दैन।

सम्बन्धित लेखहरू