JAVA搭建ftp服務器

程序裏需要使用到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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章