Apache Ftp Server:(强调)

    Apache Ftp Server 是100%纯Java的FTP服务器软件,它采用MINA网络框架开发具有非常好的性能。Apache FtpServer 既可以嵌到Java应用中使用,也可以做为Windows服务或Unix/Linux Daemon单独运行。此外还提供与Spring 相集成的模块。


Apache Ftp Server 应用:

    apache ftp server :主要应用场景大的分为两方面:

    •  作为单独的ftp服务器(这个我在前面两篇已经谈到)
    •  作为java应用的内嵌ftp 服务器 

      •   这篇博客主要是介绍内嵌方式的用户注册的不同方式.

Apache Ftp Server 用户管理:

    apache  ftp server的用户管理,在前面两篇也说过,在这重新强调一次,不管是配置文件还是数据库验证,组主要的还是那几个字段上,标示字段,密码,上传权限,连接数,上传限制等等。

    Apache Ftp Server  提供多种方式的用户注册:文件【常用】(properties)、URL(远程注册)、数据库【常用】(数据库文件)、手动配置注册(暂时没用过)等


Apache Ftp Server 用户注册的四种方式讲解(不同的加载方式【不能用junit测试启动】):

    • 文件注册(常用)  

       文件注册相对于来说比较常用,就是我们在配置user.repertoes文件

       

      关于文件注册的加载方式有两种:

      •  通过xml的方式(通过依赖ftpd-typical.xml或是ftpd-full.xml来加载):

        •   
        • 启动方式:(    CommandLine.main(new String[]{"src/main/resources/ftpserver/ftpd-typical.xml"});   )
          •   
      • 代码驱动的方式:(主要代码如下)           

            

    • 数据库注册(常用)

      • 前提:需要在数据库中建表

        • CREATE TABLE FTP_USER (
          userid VARCHAR(64) NOT NULL PRIMARY KEY,
          userpassword VARCHAR(64),
          homedirectory VARCHAR(128) NOT NULL,
          enableflag BOOLEAN DEFAULT TRUE,
          writepermission BOOLEAN DEFAULT FALSE,
          idletime INT DEFAULT 0,
          uploadrate INT DEFAULT 0,
          downloadrate INT DEFAULT 0,
          maxloginnumber INT DEFAULT 0,
          maxloginperip INT DEFAULT 0
          );

          ftpd-mysql.xml内容如下:

          •   
      • xml驱动加载( 依赖ftpd-mysql.xml或是ftpd-full.xml来加载)
        •   
      • 代码驱动 
        •   

             

    • url注册

      •   
      • 通过xml 进行注册
        •  

           

      • 代码驱动注册
        •   
    • 手动配置注册(手动注册只提供注册的接口,对数据的来源不做要求,可以来自数据库,文件,远程资源等等)

      • 手动注册到内存中

        •   
      • 手动注册到数据库

          

  修改或是删除用户(百度)

    如果想要对ftpserver启动后,修改或删除用户的信息,并使之生效。

    1)       如果是配置文件或是URL

      可以调用下面的方法来修改。

      ((PropertiesUserManager)serverFactory.getUserManager()).refresh();

    2)       如果是数据库

      ((DbUserManager)serverFactory.getUserManager()).save(user);

    3)       如果是手动注册

      ((PropertiesUserManager)serverFactory.getUserManager()).delete(usrName);

      ((PropertiesUserManager)serverFactory.getUserManager()).save(user);  


 知识点总结:

    apache ftp server 的编码方式默认是UTF-8    ,保证上传的文本是utf-8  。这样就能保证文本传输上不会出现乱码:

apache ftp server的简单入门(java应用内嵌ftp server)的更多相关文章

  1. apache ftp server的简单入门(数据库验证)

    apache的简单校验分为两种,一直是前面提到的properties的校验,具体参考:apache ftp server的简单入门(properties验证) 今天来说一种数据库的校验,这种方式在项目 ...

  2. Atitit java集成内嵌浏览器与外嵌浏览器attilax总结

    Atitit java集成内嵌浏览器与外嵌浏览器attilax总结 HTML5将颠覆原生App世界.这听起来有点危言耸听,但若认真分析HTML5的发展史,你会发现,这个世界的发展趋势确实就是这样. 熟 ...

  3. java发送内嵌图片邮件

    前言: 博客系统中需要邮件服务的功能,以前写过类似的功能,不过功能太简单了,仅仅是发送文本内容,现在尝试一下发送内嵌图片邮件! 准备工作: 请参考:http://www.cnblogs.com/huj ...

  4. Java实现内嵌浏览器

    创建项目 ---->   导入需要的jar ---->  代码实现 需要的jar: https://pan.baidu.com/s/1MEZ1S0LnKSMGQm24QWgmCw 代码: ...

  5. apache ftp server的简单入门(properties验证)

    Apache FTPServer:(开源) Apache FTPServer是一个100%纯Java的FTP服务器. 它的设计是基于现有的开放式协议的完整和便携式FTP服务器引擎解决方案.FTPSer ...

  6. SpringBoot内嵌ftp服务

    引入依赖 <!-- https://mvnrepository.com/artifact/org.apache.ftpserver/ftpserver-core --> <depen ...

  7. 简单了解C语言内嵌汇编

    最近看自旋锁的实现,自选锁的循环查找锁的主要实现类似如下,该实现使用到了内嵌的汇编(摘自sanos内核,源代码有2处实现,一处使用intel汇编,是没有问题的,另一处使用内嵌汇编语法,源代码中为cmp ...

  8. java swing内嵌浏览器,隐藏滚动条

    1 通过定义css样式表来解决 1 html{overflow-y:scoll;overflow:-moz-scrollbars-vertical;} 2 body{width:680px;heigh ...

  9. swt java 内嵌ActiveX控件

    这里用的是SWT/JFace开发application中SWT自带的org.eclipse.swt.ole.win32 包可以支持内嵌OLE和ActiveX. 具体用法如下: //创建一个OleFra ...

随机推荐

  1. 解决ASP.NET MVC 下使用SQLite 报no such table的问题

    观察后发现项目中数据库的存放位置不正确. Web项目添加到App_Data文件夹下, 文件始终不复制 Web.Config文件下的连接字符串 <add name="SQLiteconn ...

  2. Python运行MapReducer程序时所遇异常

    landen@Master:~/UntarFile/hadoop-1.0.4$ bin/hadoop jar contrib/streaming/hadoop-streaming-1.0.4.jar ...

  3. android view知识点 总结

    DecorView : http://www.jianshu.com/p/5aa96683d0dc 安卓事件分发机制: http://blog.csdn.net/guolin_blog/article ...

  4. linux中查找某端口,并关闭对应的端口

    1,netstat -ntlp  (n表示不反向域名杰斯 t表示查看tcp协议的连接 l查看正在监听端口 p获取进程号和端口) 2,然后直接kill -9 端口号 参考全文:https://linux ...

  5. SpringAOP-基于@AspectJ的简单入门

    一.AOP的基本概念: 连接点(Jointpoint):表示需要在程序中插入横切关注点的扩展点,连接点可能是类初始化.方法执行.方法调用.字段调用或处理异常等等,Spring只支持方法执行连接点,在A ...

  6. VS2015 未能正确加载 JavascriptWebExtensionsPackage

    解决方法: Close Visual Studio Open the %UserProfile%\AppData\Local\Microsoft\VisualStudio\<version> ...

  7. 使用exe4j将java项目打成exe执行程序

    最近用Java写了一个小工具,想将它达成exe执行文件,到时候直接放某个目录下,一执行就能跑啦. 用到的工具: 1.写好的项目:可以是java项目,也可以是java web项目 2.能够打jar的工具 ...

  8. linux解压.tar.xz压缩包

    今天,打算更新一下node版本(v6.11.1 -> v8.9.4),结果阿里云服务器使用nvm命令下载慢如牛,于是直接在node官网找到合适的v8.9.4压缩包下载到电脑里,然后up到阿里云服 ...

  9. android学习-Activity启动过程详解

    注:只是说明启动activity的过程(ActivityThread如何与ActivityManagerService简称AmS进行进程间通信调用全过程),不解析android从zygote(受精卵) ...

  10. win7下如何解决对方可以ping通我,但我ping不通对方问题

    以下是在百度经验里面找到的文章:http://jingyan.baidu.com/article/6b97984da3ac851ca2b0bfe1.html 当我在虚拟机的linux系统中ping本机 ...