Apache Commons Net រួមបញ្ចូល FTPHTTPClient សម្រាប់ FTP តាមរយៈ HTTP CONNECT proxy។ លក្ខណៈពិសេសដែលមានប្រយោជន៍របស់វាមិនត្រឹមតែឈានដល់ច្រកចូល FTP ប៉ុណ្ណោះទេ៖ វាក៏បង្កើតផ្លូវរូងក្រោមដី proxy សម្រាប់ការតភ្ជាប់ទិន្នន័យអកម្មដែលប្រើដោយបញ្ជី និងការផ្ទេរឯកសារផងដែរ។

អ្នកសាងសង់ទទួលយកចំណុចចុងក្រោយរបស់ proxy និងព័ត៌មានសម្គាល់ proxy ជាជម្រើស។ ម៉ាស៊ីនមេ 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();
    }
}

ផ្នែកផ្ទេរនេះសន្មតថាការនាំចូល FTP របស់ Commons Net, java.io.IOException, អថេរព័ត៌មានសម្គាល់ដែលកម្មវិធីផ្តល់ និងស្ទ្រីមលទ្ធផលដែលអ្នកហៅជាម្ចាស់។ remoteFile គឺជាឈ្មោះឯកសារដែលបានបម្រុងនៅខាងម៉ាស៊ីនមេ។ កម្មវិធីក៏ត្រូវបិទស្ទ្រីមលទ្ធផលរបស់ខ្លួននៅចំណុចត្រឹមត្រូវផងដែរ។

កំណត់របៀបអកម្មបន្ទាប់ពីភ្ជាប់ និងមុនប្រតិបត្តិការទិន្នន័យ។ ការអនុវត្ត FTPHTTPClient បដិសេធការតភ្ជាប់ទិន្នន័យក្នុងរបៀបសកម្ម។ ក្នុងរបៀបអកម្ម វាចរចាចំណុចចុងក្រោយទិន្នន័យជាមួយ FTP ហើយបើកការតភ្ជាប់មួយទៀតទៅ HTTP proxy បន្ទាប់មកស្នើផ្លូវរូងក្រោមដី CONNECT ទៅចំណុចចុងក្រោយនោះ។

ផ្លូវរូងក្រោមដីទីពីរនោះពន្យល់ពីដែនកំណត់ធម្មតា៖ ការអនុញ្ញាត proxy សម្រាប់ច្រកគ្រប់គ្រង FTP មិនគ្រប់គ្រាន់ទេ។ គោលដៅ និងច្រកដែលបានអនុញ្ញាតត្រូវរួមបញ្ចូលចំណុចចុងក្រោយទិន្នន័យអកម្មរបស់ម៉ាស៊ីនមេ។ ការស្វាគមន៍ និងការចូលដោយជោគជ័យបញ្ជាក់តែថាផ្លូវគ្រប់គ្រងបានដំណើរការ។

ការអនុវត្តផ្តល់ការផ្ទៀងផ្ទាត់ proxy Basic នៅពេលមានទាំងឈ្មោះអ្នកប្រើ និងពាក្យសម្ងាត់របស់ proxy។ នេះខុសពីការផ្លាស់ប្តូរ USER/PASS របស់ FTP។ proxy ដែលត្រូវការយន្តការផ្ទៀងផ្ទាត់ផ្សេងត្រូវការកម្មវិធីភ្ជាប់ដែលត្រូវគ្នា; អ្នកសាងសង់មិនធ្វើឱ្យគ្រោងការណ៍ទាំងអស់អាចប្រើបានទេ។

Commons Net ចាត់ទុកថ្នាក់នេះជាការពិសោធន៍ ដូច្នេះសូមវាយតម្លៃវាធៀបនឹងតម្រូវការកម្មវិធី និង proxy មុនពេលអនុម័ត។ វាជាអតិថិជន FTP មិនមែនអតិថិជន FTPS ឬ SFTP ទេ។ សម្រាប់ FTPS ជាមួយសេវា SOCKS ដែលមាន ចំណុចប្រទាក់ socket-proxy របស់ FTPSClient គឺជាផ្លូវអតិថិជនដាច់ដោយឡែក។ CONNECT ផ្តល់ផ្លូវ ហើយមិនបំពាក់កូដព័ត៌មានសម្គាល់ FTP ឬខ្លឹមសារឯកសារដោយខ្លួនឯងទេ។

រក្សាកំហុសភ្ជាប់ទៅដំណាក់កាលដែលបង្កើតវា៖ ការបដិសេធ HTTP អំឡុងពេលដំឡើងផ្លូវរូងក្រោមដី ការបដិសេធចូល FTP ឬការបរាជ័យក្នុងការផ្ទេរ FTP/ទិន្នន័យ។ ការជំនួសពាក្យសម្ងាត់ FTP មិនអាចដោះស្រាយគោលនយោបាយ proxy ដែលបដិសេធច្រកទិន្នន័យអកម្មបានទេ។

អត្ថបទពាក់ព័ន្ធ