ckfinder connector java适配ftp文件服务

ckfinder connector java适配ftp

  1. 简介

      ckfinder是一个文件管理器,包含多种语言(java、php、.net)的后端适配器及web管理界面,功能比较全面。目前java版的connector只支持本地文件系统的文件管理,由于项目需要,文件存储在远程ftp服务器中,因此需要对java版的connector进行ftp扩展。

  1. ckfinder文件模型
  1. backend

   文件仓库

  1. resourceType

     资源目录 

  1. workingfolder

      当前目录   

  1. file

      文件、图片、缩略图

  1. 源码分析

      ckfinder文件管理流程

 

      虽然图示如此,但是java版的connector并没有ftp的抽象层(个人并没有找到,网上也没有相关实现),java版的connector基于filesystem、filesystemprovider相关接口,基于此来实现ftp抽象层,个人觉得比较复杂(文件系统接口功能太多,涉及的必要实现也非常多),最终放弃该方案。

      再来分析下connector中的请求生命周期:

 

经分析,发现所有的前端请求最终都会找到对应的command实现来执行,而command就是具体文件操作逻辑。那么好了,只要我们改写所有的command实现为适配ftp的command就可以满足我们的要求了。在改造完后,功能基本都可用。

接下来列出核心的改造内容:

1、自定义ResolveCommandEvent监听器CustomResolveCommandListener,在该监听器中,返回自定义的command
2、自定义AfterCommandEvent监听器AddCurrentFolderListener(重写自AddCurrentFolderInfoEventListener)。
3、定义BeanPostProcessor的实现类LocalProcessor,重写postProcessBeforeInitialization方法,在该方法中,移除名为AddCurrentFolderInfoEventListener的bean实例(该bean会调用文件系统相关服务,因此需要重写),添加AddCurrentFolderListener的bean实例。
4、自定义WorkingFolder实现类。
5、自定义Command,重写handle方法,基于自定义的WorkingFolder方法来实现ftp文件操作。
 

原workingFolder是command的目录对象,其封装了基于当前目录的一些文件操作方法,包括目录名称、目录权限校验、获取目录文件列表等等。

  1. 回顾

      在改造完成后,发现ckfinder connector的核心逻辑基本都是自己实现的,工作量还是蛮大的。 针对于ckfinder的connector的改造,我们沿用了他的文件模型、权限控制逻辑、请求处理流程。我们改造的内容是:command的自定义解析、command的执行逻辑、aftercommand监听的执行逻辑。

  1. 问题及待完善功能

      1、文件系统connector与ftpconnector无法共存,需要针对不同的backend匹配不同的command及afftercommand监听进行逻辑开发。

      2、对于ftp的权限控制、操作正确性、可靠性还有待完善及验证,需要对ftp连接资源进行管理限制。

      3、针对缩略图的改造还未完成。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
CKFinder是一个用于文件管理的Web应用程序,它可以方便地集成到Linux系统中。下面是安装CKFinder的步骤: 1. 首先,确保你的Linux系统已经安装了Apache或Nginx等Web服务器,并且PHP版本为5.6或更高。 2. 下载CKFinder的安装包。你可以从CKFinder的官方网站(https://ckeditor.com/ckfinder/)上下载最新版本的安装包。 3. 解压安装包。使用以下命令解压下载的安装包: ``` tar -zxvf ckfinder_3.x.x.tar.gz ``` 4. 将解压后的CKFinder文件夹复制到你的Web服务器的根目录下。例如,如果你使用的是Apache服务器,将CKFinder文件夹复制到`/var/www/html/`目录下。 5. 配置CKFinder。进入CKFinder文件夹,将`config.php.sample`文件重命名为`config.php`: ``` cd ckfinder mv config.php.sample config.php ``` 6. 打开`config.php`文件,并根据你的需求进行配置。你需要设置一些基本的参数,如文件上传路径、访问控制等。 7. 配置Web服务器。如果你使用的是Apache服务器,需要在Apache的配置文件中添加以下内容: ``` Alias /ckfinder "/var/www/html/ckfinder" <Directory "/var/www/html/ckfinder"> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> ``` 8. 重启Web服务器,使配置生效。 9. 访问CKFinder。在浏览器中输入CKFinder的URL,例如`http://localhost/ckfinder/`,即可访问CKFinder文件管理界面。 希望以上步骤对你有帮助!如果你还有其他问题,请继续提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值