Commons Net FTPHTTPClient- ပက်ဆစ်ဗ် FTP အတွက် HTTP proxy လိုဏ်ခေါင်းများ
Commons Net ၏ သီးသန့် client ဖြင့် HTTP proxy မှတစ်ဆင့် FTP ထိန်းချုပ်မှုနှင့် ပက်ဆစ်ဗ် ဒေတာချိတ်ဆက်မှုများကို လိုဏ်ခေါင်းဖောက်ပါ။
Apache Commons Net တွင် HTTP CONNECT proxy မှတစ်ဆင့် FTP အသုံးပြုရန် FTPHTTPClient ပါဝင်သည်။ ၎င်း၏ အသုံးဝင်သော လက္ခဏာမှာ FTP လော့ဂ်အင် ပေါက်သို့ ရောက်ရုံသာမဟုတ်ပါ- စာရင်းများနှင့် ဖိုင်လွှဲပြောင်းမှုများ အသုံးပြုသော ပက်ဆစ်ဗ် ဒေတာချိတ်ဆက်မှုများအတွက်လည်း proxy လိုဏ်ခေါင်းများ တည်ဆောက်ပေးသည်။
constructor သည် proxy endpoint နှင့် ရွေးချယ်နိုင်သော proxy အထောက်အထားများကို လက်ခံသည်။ FTP ဆာဗာသည် connect ၏ argument အဖြစ် ဆက်ရှိပြီး 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 imports, java.io.IOException, အပလီကေးရှင်း ပေးသော အထောက်အထား ကိန်းရှင်များနှင့် ခေါ်သူပိုင်ဆိုင်သော output stream ကို ယူဆသည်။ remoteFile သည် ဆာဗာဘက်ရှိ ရည်ရွယ်ထားသော ဖိုင်အမည် ဖြစ်သည်။ အပလီကေးရှင်းသည် သင့်လျော်သော အချိန်တွင် ၎င်း၏ output stream ကိုလည်း ပိတ်ရမည်။
ချိတ်ဆက်ပြီးနောက်နှင့် ဒေတာလုပ်ဆောင်မှု မတိုင်မီ ပက်ဆစ်ဗ် မုဒ်ကို သတ်မှတ်ပါ။ FTPHTTPClient ၏ အကောင်အထည်ဖော်မှုသည် active မုဒ်ရှိ ဒေတာချိတ်ဆက်မှုများကို ငြင်းပယ်သည်။ ပက်ဆစ်ဗ် မုဒ်တွင် ၎င်းသည် FTP နှင့် ဒေတာ endpoint ကို ညှိနှိုင်းပြီး HTTP proxy သို့ အခြားချိတ်ဆက်မှုတစ်ခု ဖွင့်ကာ ထို endpoint သို့ CONNECT လိုဏ်ခေါင်းကို တောင်းဆိုသည်။
ထို ဒုတိယ လိုဏ်ခေါင်းသည် သာမန် ကန့်သတ်ချက်ကို ရှင်းပြသည်- FTP ထိန်းချုပ်ပေါက်အတွက် proxy ခွင့်ပြုချက်သည် မလုံလောက်ပါ။ ခွင့်ပြုထားသော ဦးတည်ရာများနှင့် ပေါက်များတွင် ဆာဗာ၏ ပက်ဆစ်ဗ် ဒေတာ endpoint များ ပါဝင်ရမည်။ အောင်မြင်သော နှုတ်ဆက်မှုနှင့် လော့ဂ်အင်သည် ထိန်းချုပ်လမ်းကြောင်း အလုပ်လုပ်ခဲ့ကြောင်းသာ သက်သေပြသည်။
proxy အသုံးပြုသူအမည်နှင့် စကားဝှက် နှစ်ခုလုံး ရှိသောအခါ အကောင်အထည်ဖော်မှုသည် Basic proxy အထောက်အထား စစ်ဆေးမှုကို ပေးသည်။ ၎င်းသည် FTP USER/PASS လဲလှယ်မှုနှင့် မတူပါ။ အခြား အထောက်အထား စစ်ဆေးမှု ယန္တရား လိုအပ်သော proxy သည် ကိုက်ညီသော connector လိုအပ်သည်- constructor သည် scheme တိုင်းကို မရနိုင်စေပါ။
Commons Net သည် ဤ class ကို စမ်းသပ်ဆဲအဖြစ် မှတ်တမ်းတင်ထားသောကြောင့် လက်ခံမီ အပလီကေးရှင်းနှင့် proxy လိုအပ်ချက်များနှင့် နှိုင်းယှဉ် အကဲဖြတ်ပါ။ ၎င်းသည် FTP client ဖြစ်ပြီး FTPS သို့မဟုတ် SFTP client မဟုတ်ပါ။ SOCKS ဝန်ဆောင်မှု ရနိုင်သော FTPS အတွက် FTPSClient ၏ socket-proxy အင်တာဖေ့စ် သည် သီးခြား client လမ်းကြောင်း ဖြစ်သည်။ CONNECT သည် လမ်းကြောင်းကို ပေးပြီး FTP အထောက်အထားများ သို့မဟုတ် ဖိုင်အကြောင်းအရာများကို သူကိုယ်တိုင် ကုဒ်ဝှက်ခြင်း မပြုပါ။
အမှားများကို ၎င်းတို့ကို ဖြစ်ပေါ်စေသော အဆင့်နှင့် ချိတ်ဆက်ထားပါ- လိုဏ်ခေါင်း စီစဉ်စဉ် HTTP ငြင်းပယ်မှု၊ FTP လော့ဂ်အင် ငြင်းဆန်မှု၊ သို့မဟုတ် FTP/ဒေတာ လွှဲပြောင်းမှု မအောင်မြင်မှု။ FTP စကားဝှက်ကို လဲလှယ်ခြင်းသည် ပက်ဆစ်ဗ် ဒေတာပေါက်ကို ငြင်းပယ်သော proxy မူဝါဒကို မဖြေရှင်းနိုင်ပါ။