JAVA搭建ftp服务器

本文介绍如何使用Apache Mina FTP服务器库在Java中快速搭建FTP服务。包括创建匿名用户及认证用户,并为用户提供写权限等基本配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

程序里需要使用到ftp服务器进行文件传输,但是又不能让每个用户都自行搭建ftp服务,所以只能在代码里实现这一功能。

一、准备工作

我能想到的需求,大神们都已经实现了。网上有现成的jar。这是下载地址:http://mina.apache.org/ftpserver-project/download_1.1.1.html

我用的是maven项目,所以直接引入pom文件就好。

 <!--ftp服务-->
 <dependency>
     <groupId> org.apache.ftpserver </groupId>
     <artifactId> ftpserver-core </artifactId>
     <version> 1.1.1 </version>
 </dependency>

二、代码实现

1、简单的实现

//创建匿名用户
    public void createFtp1(){
        try {
            FtpServerFactory serverFactory = new FtpServerFactory();
            BaseUser user = new BaseUser();
            user.setName("anonymous");
            user.setHomeDirectory("E:\\ftpServer");
            serverFactory.getUserManager().save(user);
            FtpServer server = serverFactory.createServer();
            server.start();
            System.out.println("ftp搭建完成");
        }catch (
                FtpException e){
            e.printStackTrace();
        }
    }

调用此方法,浏览器访问:ftp://localhost/,效果如下:

2.创建一个用户。

 //用户名密码登陆
    public void createFtp2(){
        try {
            FtpServerFactory serverFactory = new FtpServerFactory();
            BaseUser user = new BaseUser();
            user.setName("test");
            user.setPassword("123456");
            user.setHomeDirectory("E:\\ftpServer");
            serverFactory.getUserManager().save(user);
            FtpServer server = serverFactory.createServer();
            server.start();
            System.out.println("ftp搭建完成");
        }catch (
                FtpException e){
            e.printStackTrace();
        }
    }

3.给这个用户增加写权限。

  //增加用户可写权限
    public void createFtp3(){
        try {
            FtpServerFactory serverFactory = new FtpServerFactory();
            BaseUser user = new BaseUser();
            user.setName("test");
            user.setPassword("123456");
            user.setHomeDirectory("E:\\ftpServer");
            List<Authority> authority = new ArrayList<Authority>();
            authority.add(new WritePermission());
//            //最大同时登录人数+最大同时登录ip
//            authority.add(new ConcurrentLoginPermission(2,3));
//            //最大下载速度+最大上传速度
//           authority.add(new TransferRatePermission(10,30));
            user.setAuthorities(authority);
            serverFactory.getUserManager().save(user);
            FtpServer server = serverFactory.createServer();
            server.start();
            System.out.println("ftp搭建完成");
        }catch (
                FtpException e){
            e.printStackTrace();
        }
    }

三、感谢

  1. https://hoochiang.iteye.com/blog/2261213
  2. http://mina.apache.org/ftpserver-project/download_1.1.1.html
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值