Как создать сеанс sftp с vfs2 StandardFileSystemManager? - PullRequest
0 голосов
/ 10 ноября 2018

Я хотел бы создать сеанс sftp для загрузки файлов с помощью Apache Commons vfs2. Как мне это сделать?

У меня есть мой код, как показано ниже. Но проблема в том, что manager.resolve продолжает открывать соединение. Я хотел бы провести сеанс в течение 5 минут и закрыть его, когда он не используется, и снова открыть сеанс, когда это необходимо. Это будет возможно?

public void download() {
   StandardFileSystemManager manager = new StandardFileSystemManager();
   FileSystemOptions fileSystemOptions = new FileSystemOptions();

   SftpFileSystemConfigBuilder.getInstance()
                                   .setStrictHostKeyChecking(fileSystemOptions, "no");
        SftpFileSystemConfigBuilder.getInstance()
                                   .setUserDirIsRoot(fileSystemOptions, true);
        SftpFileSystemConfigBuilder.getInstance()
                                   .setTimeout(fileSystemOptions, 10000);
        SftpFileSystemConfigBuilder.getInstance()
                                   .setPreferredAuthentications(fileSystemOptions, "password");

   try {
            manager.init();
            File f = new File("myfolder");
            final FileObject localFolder = manager.resolveFile(f.toURI());
            final FileObject remoteFile = manager.resolveFile(remoteURI, fileSystemOptions);

            localFolder.copyFrom(remoteFile, Selectors.SELECT_FILES);
    } finally {
            manager.freeUnusedResources();
            manager.close();
        }
}
...