Mendapatkan semula Fail melalui SFTP dalam Java
Protokol Pemindahan Fail Selamat (SFTP) ialah protokol pemindahan fail selamat yang menyediakan pemindahan fail selamat melalui sambungan SSH. Ini berbeza dengan protokol lain seperti FTPS yang menggunakan TLS/SSL melalui sambungan TCP standard.
Untuk mendapatkan semula fail daripada pelayan melalui SFTP menggunakan Java, anda boleh menggunakan perpustakaan JSch. JSch digunakan secara meluas oleh projek seperti Eclipse, Ant dan Apache Commons HttpClient kerana cirinya yang mantap dan antara muka mesra pengguna.
Ia menyokong log masuk berasaskan pengguna/pas dan sijil serta menawarkan banyak ciri SSH2. Berikut ialah contoh kod asas yang boleh anda gunakan untuk mendapatkan semula fail jauh melalui SFTP:
import com.jcraft.jsch.*; public class SftpFileRetriever { public static void main(String[] args) throws JSchException { JSch jsch = new JSch(); String knownHostsFilename = "/home/username/.ssh/known_hosts"; jsch.setKnownHosts(knownHostsFilename); Session session = jsch.getSession("remote-username", "remote-host"); { // Interactive version // This version allows you to selectively update specified known_hosts file. // You'll need to implement the UserInfo interface, and MyUserInfo is a swing implementation provided in JSch's Sftp.java example. UserInfo ui = new MyUserInfo(); session.setUserInfo(ui); // Non-interactive version // This version relies on the host key being in the known-hosts file. // session.setPassword("remote-password"); } session.connect(); Channel channel = session.openChannel("sftp"); channel.connect(); ChannelSftp sftpChannel = (ChannelSftp) channel; sftpChannel.get("remote-file", "local-file"); sftpChannel.exit(); session.disconnect(); } }
Kod ini mewujudkan sesi SSH, menyediakan hos yang diketahui dan bersambung ke saluran. Kemudian, ia mendapatkan semula fail jauh dan memutuskan sambungan sesi. Pengendalian ralat dan butiran khusus interaksi pengguna dibiarkan sebagai latihan untuk anda selesaikan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Dapatkan Fail daripada Pelayan SFTP Menggunakan Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!