最近银行需要上传对账文件到我们的FTP服务器,服务器是Windows环境的,最初用IIS搭建了一个,但被动模式情况下无法打开端口范围,就用apache.ftpserver.FtpServer封了一个,当然也可以直接下载apache.ftpserver.FtpServer部署即可。
public static void initFTPService(){ try { FtpServerFactory serverFactory = new FtpServerFactory(); ListenerFactory factory = new ListenerFactory(); factory.setPort(Constants.FTPPort);//本地监听端口 //设置PASS (被动模式) DataConnectionConfigurationFactory dFactory = new DataConnectionConfigurationFactory(); dFactory.setPassiveIpCheck(true); dFactory.setPassiveExternalAddress(Constants.PassiveExternalAddress); dFactory.setPassivePorts(Constants.PassivePorts); dFactory.setPassiveAddress(Constants.PassiveAddress); factory.setDataConnectionConfiguration(dFactory.createDataConnectionConfiguration()); serverFactory.addListener("default", factory.createListener());//覆盖默认监听 //用户名 BaseUser user = new BaseUser(); user.setName(Constants.FTPUserName); user.setPassword(Constants.FTPPassWord); //目录 user.setHomeDirectory(Constants.FTPRootPath); List<Authority> authorities = new ArrayList<Authority>(); //权限 authorities.add(new WritePermission()); user.setAuthorities(authorities); //增加该用户 serverFactory.getUserManager().save(user); FtpServer server = serverFactory.createServer(); server.start(); } catch (FtpException e) { e.printStackTrace(); } }
Java 嵌入apache.ftpserver.FtpServer 实现FTP服务
最新推荐文章于 2022-09-30 16:30:08 发布