gpt4 book ai didi

java - 有没有一种简单的方法来检查 SFTP 服务器是否有变化?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:42:59 25 4
gpt4 key购买 nike

我的目标是轮询 SFTP 服务器的更改。我的第一个想法是检查目录中的文件数是否发生了变化。然后可能需要对目录中的更改进行一些额外的检查。

目前我正在使用以下内容:

try {
FileSystemOptions opts = new FileSystemOptions();
SftpFileSystemConfigBuilder.getInstance().setStrictHostKeyChecking(opts, "no");
SftpFileSystemConfigBuilder.getInstance().setUserDirIsRoot(opts, true);
SftpFileSystemConfigBuilder.getInstance().setTimeout(opts, 60000);

FileSystemManager manager = VFS.getManager();
FileObject remoteFile = manager.resolveFile(SFTP_URL, opts);

FileObject[] fileObjects = remoteFile.getChildren();
System.out.println(DateTime.now() + " --> total number of files: " + Objects.length);
for (FileObject fileObject : fileObjects) {
if (fileObject.getName().getBaseName().startsWith("zzzz")) {
System.out.println("found one: " + Object.getName().getBaseName());
}
}
} catch (Exception e) {
e.printStackTrace();
}

这是使用 apache commons vfs2 2.2.0。它工作“很好”,但是当服务器有太多文件时,它需要几分钟才能获得计数(目前,它需要超过 2 分钟才能获得具有约 10k 文件的服务器的计数)。有什么方法可以更快地获取服务器上的计数或其他更改?

最佳答案

不幸的是,SFTP 协议(protocol)中没有简单的方法来获取更改。如果您可以在服务器上运行一些守护程序,或者如果新文件的源可以创建/更新帮助文件,则可以选择创建名称或内容中包含最后修改时间的此类文件。

关于java - 有没有一种简单的方法来检查 SFTP 服务器是否有变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31059236/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com