2

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

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

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

有没有办法实现这一点,以便服务器只返回请求的名称?SFTP 协议甚至支持这个吗?

4

1 回答 1

2

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

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

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

于 2021-04-27T09:54:47.680 回答