Java SFTP 服务器库?[已关闭]

2022-09-01 01:33:11

是否有可用于实现 SFTP 服务器的 Java 库?

我正在尝试通过SFTP接收文件,但我似乎找不到SFTP服务器的任何实现。我找到了FTP / SFTP / FTPS客户端库和FTP / FTPS服务器库,但没有一个用于SFTP的服务器。

为了澄清,我正在尝试通过SFTP接收文件。不要将文件从我的应用程序“获取”或“放置”到另一个现有服务器。

现在我的应用程序允许用户连接到本地linux SFTP服务器,删除文件,然后我的应用程序轮询目录,但我觉得这是一个糟糕的实现;我讨厌“轮询”目录的想法,但不幸的是,他们必须使用SFTP。有什么建议吗?


答案 1

如何使用 Apache Mina SSHD 设置 SFTP 服务器:

public void setupSftpServer(){
    SshServer sshd = SshServer.setUpDefaultServer();
    sshd.setPort(22);
    sshd.setKeyPairProvider(new SimpleGeneratorHostKeyProvider("hostkey.ser"));

    List<NamedFactory<UserAuth>> userAuthFactories = new ArrayList<NamedFactory<UserAuth>>();
    userAuthFactories.add(new UserAuthNone.Factory());
    sshd.setUserAuthFactories(userAuthFactories);

    sshd.setCommandFactory(new ScpCommandFactory());

    List<NamedFactory<Command>> namedFactoryList = new ArrayList<NamedFactory<Command>>();
    namedFactoryList.add(new SftpSubsystem.Factory());
    sshd.setSubsystemFactories(namedFactoryList);

    try {
        sshd.start();
    } catch (Exception e) {
        e.printStackTrace();
    }
}

仅此而已。


答案 2

请注意,SFTP 不是 SSL 上的 FTP,也不是 SSH 上的 FTP。SFTP 服务器支持需要用 Java 实现 SSHD。你最好的选择是Apache SSHD,

http://mina.apache.org/sshd-project/

我从未使用过SFTP,但我听说它是基本的,但功能强大。


推荐