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

Java SFTP传输库

章锦
2023-03-14
问题内容

我正在寻找用于SFTP文件传输的简单Java库。除此以外,我不需要任何其他功能。

我已经尝试过Zehon的,但是令人难以置信的是,我认为8个jar文件对于我需要的这么少的功能有点疯狂。

而且该库必须是免费的(例如免费啤酒),并且最好是开放源代码(不是必需的)。

谢谢。


问题答案:

编辑:
我将保留我以前的答案,因为JSch仍然在许多地方使用,但是如果需要更好地文档说明的库,则可以使用sshj。如何使用它执行sftp的示例是:

SSHClient ssh = new SSHClient();
ssh.loadKnownHosts();
ssh.connect("host");
try {
    ssh.authPassword("username", "password");
    SFTPClient sftp = ssh.newSFTPClient();
    try {
        sftp.put(new FileSystemFile("/path/of/local/file"), "/path/of/ftp/file");
    } finally {
        sftp.close();
    }
} finally {
    ssh.disconnect();
}

使用JSch(例如,Ant使用的java ssh库),您可以执行以下操作:

Session session = null;
Channel channel = null;
try {
    JSch ssh = new JSch();
    ssh.setKnownHosts("/path/of/known_hosts/file");
    session = ssh.getSession("username", "host", 22);
    session.setPassword("password");
    session.connect();
    channel = session.openChannel("sftp");
    channel.connect();
    ChannelSftp sftp = (ChannelSftp) channel;
    sftp.put("/path/of/local/file", "/path/of/ftp/file");
} catch (JSchException e) {
    e.printStackTrace();
} catch (SftpException e) {
    e.printStackTrace();
} finally {
    if (channel != null) {
        channel.disconnect();
    }
    if (session != null) {
        session.disconnect();
    }
}

您可以通过这种方式直接使用JSch,也可以通过Commons VFS使用JSch
,但是您必须同时拥有Commons vfs jar和jsch jar。



 类似资料:
  • 我需要使用JSch库编程文件传输。我有一个包含两个文件夹的简单目录- 在SFTP\u 1文件夹中,我有一个位图图像。而SFTP\U 2文件夹只是一个空文件夹。我的目标是使用SFTP将图像从SFTP\U 1传输到SFTP\U 2。 以下是迄今为止我的代码: 我想做的是简单地将文件从我机器中的一个目录传输到另一个目录。任何提示,谢谢!

  • 介绍 APR (Apache Portable Runtime) 提供了更好的扩展性、性能以及更好的与本地服务器技术的集成。MINA 照常 APR 传输。现在我们将了解如何使用 MINA 进行 APR 传输。我们将为此使用时间服务器的例子。 先决条件 APR 传输取决于以下组件 APR 库 - 从 http://www.apache.org/dist/tomcat/tomcat-connector

  • 使用 MINA 2.0 你可以连接到串行端口,就像你使用 MINA 连接到一个 TCP/IP 端口一样。 获取 MINA 2.0 你可以下载最新构建的版本 (2.x)。 先决条件 在使用 Java 程序访问串行端口之前你需要一个本地库 (因你的操作系统不同可能是 .DLL 或者 .so)。MINA 使用的是来自 RXTX.org 的:ftp://ftp.qbang.org/pub/rxtx/rxt

  • rpcx 可以通过 TCP、HTTP、UnixDomain、QUIC和KCP通信。你也可以使用http客户端通过网关或者http调用来访问rpcx服务。 TCP 这是最常用的通信方式。高性能易上手。你可以使用TLS加密TCP流量。 Example: 101basic 服务端使用 tcp 做为网络名并且在注册中心注册了名为 serviceName/tcp@ipaddress:port 的服务。 ``

  • Git 可以通过两种主要的方式在版本库之间传输数据:“哑(dumb)”协议和“智能(smart)”协议。 本节将会带你快速浏览这两种协议的运作方式。 哑协议 如果你正在架设一个基于 HTTP 协议的只读版本库,一般而言这种情况下使用的就是哑协议。 这个协议之所以被称为“哑”协议,是因为在传输过程中,服务端不需要有针对 Git 特有的代码;抓取过程是一系列 HTTP 的 GET 请求,这种情况下,客

  • 底层传输方式(transport)是当前 V2Ray 节点和其它节点对接的方式。底层传输方式提供了稳定的数据传输通道。通常来说,一个网络连接的两端需要有对称的传输方式。比如一端用了 WebSocket,那么另一个端也必须使用 WebSocket,否则无法建立连接。 底层传输(transport)配置分为两部分,一是全局设置(TransportObject),二是分协议配置(StreamSettin