apache ftp server的简单入门(java应用内嵌ftp server)
Apache Ftp Server:(强调)
Apache Ftp Server 是100%纯Java的FTP服务器软件,它采用MINA网络框架开发具有非常好的性能。Apache FtpServer 既可以嵌到Java应用中使用,也可以做为Windows服务或Unix/Linux Daemon单独运行。此外还提供与Spring 相集成的模块。
Apache Ftp Server 应用:
apache ftp server :主要应用场景大的分为两方面:
-
- 作为单独的ftp服务器(这个我在前面两篇已经谈到)
-
- 作为java应用的内嵌ftp 服务器
- 这篇博客主要是介绍内嵌方式的用户注册的不同方式.
- 作为java应用的内嵌ftp 服务器
Apache Ftp Server 用户管理:
apache ftp server的用户管理,在前面两篇也说过,在这重新强调一次,不管是配置文件还是数据库验证,组主要的还是那几个字段上,标示字段,密码,上传权限,连接数,上传限制等等。
Apache Ftp Server 提供多种方式的用户注册:文件【常用】(properties)、URL(远程注册)、数据库【常用】(数据库文件)、手动配置注册(暂时没用过)等
Apache Ftp Server 用户注册的四种方式讲解(不同的加载方式【不能用junit测试启动】):
-
-
文件注册(常用)
-
文件注册相对于来说比较常用,就是我们在配置user.repertoes文件
关于文件注册的加载方式有两种:
-
-
- 通过xml的方式(通过依赖ftpd-typical.xml或是ftpd-full.xml来加载):
-
- 启动方式:( CommandLine.main(new String[]{"src/main/resources/ftpserver/ftpd-typical.xml"}); )
-
-
- 代码驱动的方式:(主要代码如下)
- 通过xml的方式(通过依赖ftpd-typical.xml或是ftpd-full.xml来加载):
-
-
-
数据库注册(常用)
- 前提:需要在数据库中建表
-
CREATE TABLE FTP_USER (
ftpd-mysql.xml内容如下:
userid VARCHAR(64) NOT NULL PRIMARY KEY,
userpassword VARCHAR(64),
homedirectory VARCHAR(128) NOT NULL,
enableflag BOOLEAN DEFAULT TRUE,
writepermission BOOLEAN DEFAULT FALSE,
idletime INT DEFAULT 0,
uploadrate INT DEFAULT 0,
downloadrate INT DEFAULT 0,
maxloginnumber INT DEFAULT 0,
maxloginperip INT DEFAULT 0
); -
-
- xml驱动加载( 依赖ftpd-mysql.xml或是ftpd-full.xml来加载)
-
- 代码驱动
-
- 前提:需要在数据库中建表
-
url注册
- 通过xml 进行注册
-
- 代码驱动注册
-
-
手动配置注册(手动注册只提供注册的接口,对数据的来源不做要求,可以来自数据库,文件,远程资源等等)
- 手动注册到内存中
-
- 手动注册到数据库
- 手动注册到内存中
-
修改或是删除用户(百度)
如果想要对ftpserver启动后,修改或删除用户的信息,并使之生效。
1) 如果是配置文件或是URL
可以调用下面的方法来修改。
((PropertiesUserManager)serverFactory.getUserManager()).refresh();
2) 如果是数据库
((DbUserManager)serverFactory.getUserManager()).save(user);
3) 如果是手动注册
((PropertiesUserManager)serverFactory.getUserManager()).delete(usrName);
((PropertiesUserManager)serverFactory.getUserManager()).save(user);
知识点总结:
apache ftp server 的编码方式默认是UTF-8 ,保证上传的文本是utf-8 。这样就能保证文本传输上不会出现乱码:
本文来自博客园,作者:huhy,转载请注明原文链接:https://www.cnblogs.com/huhongy/p/8094015.html