利用Apache ftp server 为你的程序提供FTP服务
?
1.3.1.1 server的配置
?这一部分在官网写的很清楚,可以查看http://mina.apache.org/ftpserver/configuration.html。在这里本人凭借英语四级的水平斗胆翻译一下。
?
其中users.properties文件权限控制文件,encrypt-passwords可以指定密码存储的方式,有效值包括“clear”(明文),“md5”,”salted”,这个salted不知道是什么意思,应该和MD5类似吧,估计也是一种加密标准,而且官方鼓励使用salted.
AFS在安装时就提供了一个默认的users.properties文件,配置项一目了然。
?
1.3.2.1 数据库控制权限
数据库对用户的权限的管理与通过文件类似,不同就是把对用户的配置移到了数据库的表里面。而且AFS提供了建表的sql语句,文件存放在res下的ftp-db.sql。
关于此处的相关配置可以参见上面的完成配置实例,该部分的需要配置insert-user,update-user,delete-user,select-user,select-all-users,is-admin,authenticate。一般情况下我们都会用我们不会单独用AFS来增删改用户,但是update-user、delete-user和insert-user一个都不能少,不然AFS启动时校验通不过。另外我们通常会希望AFS的用户管理与我们的应用系统采用统一管理,也就是不再为AFS建立专用的用户管理表,这时候我们可以通过修改select-user、is-admin、authenticate等配置项来完成。不要以为随便改写查询sql都可以哦,AFS在处理这几个查询时是通过类似rs.getString(列名)的形式获得记录的,也就是说无论我们怎么修改sql,但是数据列名或者别名一定要和AFS提供的默认查询语句匹配上,不然会有无效列名的错误。
关于AFS的配置大概就这些,总的来说各个配置项还是很直观的。现在我们就可以执行bin\ftpd.sh启动AFS了。
?
2.作为window系统的服务
如果是在windows平台的话,AFS还可以注册为windows的系统服务来运行。方法也很简单,直接执行:
<yourhome>bin\service install
运行成功后,进到windows的服务管理窗口就可以看到我们新注册的名为Apache FtpServer的服务了。当然服务名是可以指定的,只需:
<yourhome>bin\service install <your服务名>
此时创建的服务名就为Apache Ftp Servef <你指定的服务名>
如果我们想注册服务时用特定的配置文件可以执行如下命令:
<yourhome>bin\service install <your服务名> <你需要执行的文件路径>
卸载已经注册的windows服务只需:
<yourhome>bin\service remove <your服务名(不输入为默认)>
?
?
3.结合spring配置嵌入我们自己的系统
以上我们介绍的是独立部署AFS,其实AFS还可以结合spring嵌入到我们的应用程序中。
修改web.xml文件添加spring的相关配置如下:
?
?
?src目录下建立spring配置文件applicationContext-ftpserver.xml
配置方法与前面提到的server配置参数相同,只是此时的server作为spring的一个bean来处理。格式如下:?
?
其中ServiceController代码如下:
现在我们就可以将AFS纳入到我们的应用程序的管理范畴之内。
另外再说些其他的,因为server作为spring的一个bean来处理,所以可以配置多个server,也就是为主机配置多个AFS server,虽然可以这样的配置,但是觉得也没有这种必要,只是觉得好玩可以配一下。?