原文地址:http://mina.apache.org/ftpserver-project/embedding_ftpserver.html
FtpServer设计成可以非常轻易的嵌入到你的应用。获取一个基本的服务并简单启动。
FtpServerFactory serverFactory = new FtpServerFactory();
FtpServer server = serverFactory.createServer();
// startthe server
server.start();
让它运行你需要将如下JAR加入到你的classpath:
(1)mina-core.2.0-M3或更新版本
(2)slf4j-api
(3)选择一个SLF4J的一个实现,例如slf4j-simple-1.5.3.jar
(4)ftplet-api
(5)ftpserver-core
现在,你可能需要配置特定的服务器。例如,你可能想运行在Linux/Unix没有root授权的端口上。如果你要那样做需要配置一个监听。监听是FtpServer完成网络管理的一部分。默认情况下,只有一个名为“default”的监听被创建,但是你可以添加更多的监听。例如一个建立在防火墙外一个在里面。
现在,让我们配置默认的监听器等待连接。
FtpServerFactory serverFactory = new FtpServerFactory();
ListenerFactory factory = new ListenerFactory();
// 给监听设置端口
factory.setPort(2221);
// 替换默认监听
serverFactory.addListener("default",factory.createListener());
// 启动一个服务
FtpServer server = serverFactory.createServer();
server.start();
现在,让我们的客户端对于default监听使用FTPS(基于SSL的FTP)
FtpServerFactory serverFactory = new FtpServerFactory();
ListenerFactory factory = new ListenerFactory();
// 设置监听端口号
factory.setPort(2221);
// 定义SSL配置
SslConfigurationFactory ssl = new SslConfigurationFactory();
ssl.setKeystoreFile(new File("src/test/resources/ftpserver.jks"));
ssl.setKeystorePassword("password");
// 给监听设置SSL配置
factory.setSslConfiguration(ssl.createSslConfiguration());
factory.setImplicitSsl(true);
// 替换默认监听
serverFactory.addListener("default",factory.createListener());
PropertiesUserManagerFactory userManagerFactory = new PropertiesUserManagerFactory();
userManagerFactory.setFile(new File("myusers.properties"));
serverFactory.setUserManager(userManagerFactory.createUserManager());
// 启动服务
FtpServer server = serverFactory.createServer();
server.start();