apache ftp server 学习笔记

apache ftpserver 使用实例


apache ftp 也提供服务器

相关下载:

ftpserver:http://mina.apache.org/ftpserver/

ftpserver down:http://mina.apache.org/ftpserver/apache-ftpserver-100-release.html

commons-net down:http://commons.apache.org/net/download.html


根据介绍了解到,它是一个%100java简便ftp 服务器容器


需求,之前是经理提出需要使用apache 的commons-net来操作ftp的上传下载签约文件,在与客户交互过程提及自己开发ftpserver 但能力有限,对ftp 协议也不是很了解,就google到 apache ftpserver


但下载apache ftpserver之后发现同http server一样,但我所要求的是使用程序自动开启关闭ftpsever所以需要更进行一步了解下面是简单的例子,希望对其它朋友有一点点帮助:

(以下代码只是doc加了一点中文说明方便自己查看)


/**
* 操作ftpserver
* @author zhanghuadong
*
*/
public class FtpService {

public static void main(String[] args){
//服务工厂
FtpServerFactory serverFactory = new FtpServerFactory();

//监听
ListenerFactory factory = new ListenerFactory();
// 设置监听端口
factory.setPort(21);
// ssl 相关配置 我自己没有使用
// SslConfigurationFactory ssl = new SslConfigurationFactory();
//根据通过绝对路径,也可以是classpath路径
// ssl.setKeystoreFile(new File("ftpserver.jks"));
// ssl.setKeystorePassword("password");
// set the SSL configuration for the listener
// factory.setSslConfiguration(ssl.createSslConfiguration());
// factory.setImplicitSsl(true);

serverFactory.addListener("default", factory.createListener());
//根据properties提供用户 也可使用DbUserManagerFactory 提供用户,具体查看文件,表结构也给出来了
PropertiesUserManagerFactory userManagerFactory = new PropertiesUserManagerFactory();
//这里只能是绝对路径 ?
userManagerFactory.setFile(new File(FtpService.class.getResource("/").getPath()+"myusers.properties"));
/**使用自己的加密类,因为apache ftp server 使用的是md5 也就是logon之前需把密码加密后才能logon */
userManagerFactory.setPasswordEncryptor(new LocalPassword());
serverFactory.setUserManager(userManagerFactory.createUserManager());
//创建服务并启动
FtpServer server = serverFactory.createServer();
try {
server.start();
} catch (FtpException e) {
e.printStackTrace();
}

}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值