当前位置: 首页 > 面试题库 >

Java 如何通过SFTP从服务器检索文件?

程振濂
2023-03-14
问题内容

我正在尝试使用Java从使用SFTP(而不是FTPS)的服务器检索文件。我怎样才能做到这一点?


问题答案:

另一个选择是考虑查看JSch库。JSch似乎是一些大型开源项目的首选库,其中包括Eclipse,Ant和Apache Commons HttpClient。

它很好地支持用户/通过和基于证书的登录,以及所有其他许多美味的SSH2功能。

这是通过SFTP检索的简单远程文件。错误处理留给读者练习:-)

JSch jsch = new JSch();

String knownHostsFilename = "/home/username/.ssh/known_hosts";
jsch.setKnownHosts( knownHostsFilename );

Session session = jsch.getSession( "remote-username", "remote-host" );    
{
  // "interactive" version
  // can selectively update specified known_hosts file 
  // need to implement UserInfo interface
  // MyUserInfo is a swing implementation provided in 
  //  examples/Sftp.java in the JSch dist
  UserInfo ui = new MyUserInfo();
  session.setUserInfo(ui);

  // OR non-interactive version. Relies in host key being in 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" );
// OR
InputStream in = sftpChannel.get( "remote-file" );
  // process inputstream as needed

sftpChannel.exit();
session.disconnect();


 类似资料:
  • 我正试图从ftp服务器检索一个文件,但我得到如下错误。请你帮帮我好吗 导入java.io.BufferedOutputStream; 导入java.io.file; 导入java.io.FileOutputStream; 导入java.io.IOException; 导入java.io.InputStream; 导入java.io.OutputStream; 导入java.text.DateFor

  • 有一个用例,我必须: 在我的应用程序中,在应用程序服务器上生成一个文件。让我们把这称为一台机器。(这是我的Java代码运行的地方,用来生成文件) 从应用程序本身,我希望使用SFTP将这个文件传输到一个固定路径(比如)的白名单服务器B 第1点和第2点是直截了当的。 现在有一个外部服务器C(我提供了它的凭据) 现在,应用程序正在服务器A上运行。 文件现在位于服务器B中的== 如何实现这种多次跳转的SF

  • 我正在从sftp服务器读取文件,并使用Spring Batch Framework将该文件加载到数据库中。下面是我的代码,但我遇到了一个错误 代码: 错误:

  • 问题内容: 是否有一个Java库可用于实现SFTP服务器? 我正在尝试通过SFTP接收文件,但似乎找不到SFTP服务器的任何实现。我找到了FTP / SFTP / FTPS 客户端 库和FTP / FTPS服务器库,但没有找到用于SFTP的服务器。 为了澄清,我正在尝试通过SFTP 接收 文件。不能将应用程序中的文件“获取”或“放置”到其他现有服务器上。 现在,我的应用程序允许用户连接到本地lin

  • 问题内容: 我正在尝试找到一种方法,可以通过SFTP从服务器读取大型动态日志文件的末尾(如末尾20-30行),并将该点保存到读取的位置,如果需要读取更多行,则可以读取更多内容从这一点上来看。 我尝试过的所有事情都花费了很长时间,我试图将其复制到计算机上,然后再从终端读取以使用该方法,因为这种方法需要对象,通过SFTP时,您只会得到很多东西,而下载文件需要很多时间。 还尝试对行进行计数并从n行读取,

  • 问题内容: 如何在Java中通过SFTP传输文件? 我想要SFTP客户端的示例代码。我想将SFTP服务器嵌入到我的应用程序中,并且客户端应该能够将文件发送到我的应用程序。 PS:这是要求SFTP客户端。这个问题不是其他两个问题的重复。 找到以下链接以实现SFTP。 https://codetransient.wordpress.com/2019/06/22/sftp-secured-file-tr