目录
最近要开发一个上传的客户端,功能实现定时、压缩上传、自动重连、定点续传等功能。至于服务端选用开源的的FTP服务器。选择了ftpserver。
使用也比较简单,具体的文档参见官网地址:http://mina.apache.org/ftpserver-project/documentation.html。下面是结合自己的使用记录了常用的命令和配置。
1)安装
我是在Windows下使用,启动命令为:在bin目录下进入命令行执行: bin/ftpd.bat res/conf/ftpd-typical.xm
如果嫌每次输入麻烦可以将这句话保存在文件start.bat中启动
如果以服务的方式启动,命令为service install ftpd res/conf/ftpd-typical.xml (注意,要以管理员身份启动命令行才能启动成功)
安装服务后可以通过ftpdw.exe来控制服务的启停。也可以进入Windows的services.msc自己控制服务的启停
服务的卸载命令是service remove :) 这样服务就能够启动了!!!
2) 配置:
server的配置
<server xmlns="http://mina.apache.org/ftpserver/spring/v1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://mina.apache.org/ftpserver/spring/v1 http://mina.apache.org/ftpserver/ftpserver-1.0.xsd" id="server" max-logins="500" anon-enabled="false" max-anon-logins="123" max-login-failures="124" login-failure-delay="125"> ... </server>
server的配置在ftpd-typical.xml中与ftpd-full.xml中都没有配置,那么server的属性都是默认值,比如max-logins默认值为10,后面在user.properties中配置超过10将不起作用。
上面是官方网站给的示例,下面是官方给的server元素的说明
id | A unique identifier for this server within this XML configiration | Yes | |
max-threads | The maximum number of threads used in the thread pool for handling client connections | No | max-logins, or 16 if neither value is set |
max-logins | The maximum number of simultaneous users | No | 10 |
max-anon-logins | The maximum number of simultaneous anonymous users | No | 10 |
anon-enabled | Are anonymous logins enabled? | No | true |
max-login-failures | The number of failed login attempts before the connection is closed | No | 3 |
login-failure-delay | The number of milliseconds that the connection is delayed after a failed login attempt. Used to limit to possibility of brute force guessing passwords. | No | 500 |
最大线程数max-threads这个提高了应该提高处理客户端连接的速度。
下面是user.properties的配置,用来配置ftp的用户,可以配置多个,示例以及属性说明如下:
ftpserver.user.admin.userpassword=21232F297A57A5A743894A0E4A801FC3 -----------这个是md5的16进制的加密??
ftpserver.user.admin.homedirectory=f:/c -----------这个用户的访问目录
ftpserver.user.admin.enableflag=true -----------
ftpserver.user.admin.writepermission=true -----------是否运行写操作
ftpserver.user.admin.maxloginnumber=0 -----------最大登录数,这个值一定要小于server的max-login
ftpserver.user.admin.maxloginperip=0 -----------每个ip的最大登录数,这个要小于maxloginnumber
ftpserver.user.admin.idletime=0 -----------空闲时间,....??
ftpserver.user.admin.uploadrate=0 -----------上传速度 单位是B
ftpserver.user.admin.downloadrate=0 -----------下载速度 单位是B
先写到这里,其他属性待续...........