Apache mina FTP 服务器初始目录结构

问题描述

我在 Spring Boot 中制作了简单的 Apache MINA FTP 服务器。类似于 this github repo 中的项目 mina-ftp-server。主要配置如下:

@Configuration
class FtpServerConfiguration {

    @Bean
    FileSystemFactory fileSystemFactory() {
        NativeFileSystemFactory fileSystemFactory = new NativeFileSystemFactory();
        fileSystemFactory.setCreateHome(true);
        fileSystemFactory.setCaseInsensitive(false);
        return fileSystemFactory::createFileSystemView;
    }

    @Bean
    Listener nioListener(@Value("${ftp.port:7777}") int port) {
        ListenerFactory listenerFactory = new ListenerFactory();
        listenerFactory.setPort(port);
        return listenerFactory.createListener();
    }

    @Bean
    FtpServer ftpServer(Map<String,Ftplet> ftpletMap,UserManager userManager,Listener nioListener,FileSystemFactory fileSystemFactory) {
        FtpServerFactory ftpServerFactory = new FtpServerFactory();
        ftpServerFactory.setListeners(Collections.singletonMap("default",nioListener));
        ftpServerFactory.setFileSystem(fileSystemFactory);
        ftpServerFactory.setFtplets(ftpletMap);
        ftpServerFactory.setUserManager(userManager);
        return ftpServerFactory.createServer();
    }

    @Bean
    disposableBean destroysFtpServer(FtpServer ftpServer) {
        return ftpServer::stop;
    }

    @Bean
    InitializingBean startsFtpServer(FtpServer ftpServer) {
        return ftpServer::start;
    }

    @Bean
    UserManager userManager(@Value("${ftp.root:${HOME}/Desktop/root}") File root,JdbcTemplate template) {
        Assert.isTrue(root.exists() || root.mkdirs(),"the root directory must exist.");
        return new FtpUserManager(root,template);
    }

}

问题是 FTP 服务器应该在服务器重新启动时更新目录树。因此,应根据其他一些变量添加文件夹。

有没有办法在启动 Apache MINA FTP 服务器时“播种”初始目录树?也许在启动后立即将管理 FTPSession 对象注入一些我不知道的过滤器?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...