如何使用 SSHJ 从 SFTP 服务器获取预先过滤的文件列表

时间:2021-04-27 09:13:23

标签: java sftp directory-listing sshj

我正在使用 SSHJ SFTP library 从 SFTP 服务器获取文件列表。 与服务器的连接非常慢,目录中有数以万计的文件。通常获取文件列表会以各种超时/套接字错误结束。

是否有可能告诉客户端仅从例如检索文件列表。 “.zip”文件,以便它对性能产生积极影响?伪命令:sftpClient.ls("*.zip")

我知道有一种方法 List<RemoteResourceInfo> net.schmizz.sshj.sftp.SFTPClient.ls(String path, RemoteResourceFilter filter) 可以过滤列表,但据我所知,过滤只会发生在客户端? IE。客户端仍然会收到整个文件列表,然后就会被过滤。

有什么办法可以让服务器只返回请求的名称? SFTP 协议甚至支持这个吗?

1 个答案:

答案 0 :(得分:1)

事实上,SFTP 协议无法提供符合任何条件的文件列表。没关系,您使用的是什么 SFTP 库。

如果您需要过滤列表,则必须使用其他接口/API。如果您有 shell 访问权限,则可以使用 shell 命令 ls *.zip

或者构建您自己的(REST?)API。

相关问题