Watch 5 Star 3 Fork 6

alex / finder-web

Create your Gitee Account
Explore and code with more than 5 million developers,Free private repositories !:)
Sign up
This repository doesn't specify license. Without author's permission, this code is only for learning and cannot be used for other purposes.
Nothing here. spread retract

Clone or download
Cancel
Notice: Creating folder will generate an empty file .keep, because not support in Git
Loading...
README.md

概述 Overview

在线演示:http://www.finderweb.net

Finder支持群组(QQ):341624652

如果自己构建,最好使用我提供的ant构建, 虽然我也提供了maven构建, 但是自动化程度不高。有部分页面构建之后不会出现在war包里面,请务必注意。不了解项目结构的最好使用我build好的war包部署。
重要提示:不了解项目结构的就不要自己构建了,我看到不少使用者自己构建出来的war包一塌糊涂,还部署在自己的线上环境,部署完了不知道修改密码,把自己的应用目录都暴露出来了,就在线上裸奔....

Finder是一个高性能的Web版分布式文件管理工具,它具有体积小,易部署,功能强大等特点

  • (程序员专用) 支持集群部署,允许你同时管理多台机器上的文件或者查看不同机器上的日志;
  • (程序员专用) grep支持,类似linux系统的grep命令,支持任意大小的文件,支持随时查看文件的任意位置,像播放器一样点击进度条的任意位置;
  • (程序员专用) less支持,类似linux系统的less命令,支持任意大小的文件,支持随时查看文件的任意位置,像播放器一样点击进度条的任意位置;
  • (程序员专用) tail支持,类似linux系统的tail命令,支持任意大小的文件;
  • 支持细粒度的权限控制,能满足不同的权限需求;IT运维或者公司内部资料分享,允许控制文件可见和文件的各种操作。
  • 支持全键盘操作,几乎所有操作均有对应的快捷键支持;
  • 支持右键菜单,文件的常规操作都可以通过右键菜单完成;
  • 支持文件重命名,点击选中文件,然后按F2即可重命名文件;
  • 支持大上传,超大文件会自动分段上传,默认设置每次上传5M;
  • 支持文件拖拽上传,可同时拖拽多个文件上传;
  • 支持截图上传,截图之后按Ctrl + Shift + V;
  • 支持音频和视频播放(需支持H5的浏览器);
  • 体积小,只有不到3M,目前一般基于SSH的web应用,基本都在几十兆左右。Finder除了日志组件无任何第三方依赖(日志组件也不需要单独安装);
  • 无数据库设计,免去部署数据库的麻烦,所有数据存储都存在本地文件系统,集群环境下分布式存储。
  • 易于部署,直接扔到Tomcat里即可;
  • 基于web的文件管理,几乎所有的操作系统和服务器的防火墙默认都对HTTP开放,而FTP大多需要专门开通;不需要用户安装专门的客户端软件,使用浏览器即可。
  • 对网络环境无任何要求,不需要做任何特殊设置。出于安全考虑,几乎所有的服务器都限制单个HTTP请求体的大小,且默认值很小,一般在2M左右,并且限制连接时间。Finder不需要专门设置即可上传或者下载超大的文件,Finder所有的功能都使用短连接完成以避免服务器超时限制。对于大文件采用分片上传,一方面可以避免服务器的限制,另一方面在网络环境不好的情况下提高上传的成功率,因为大文件长时间连接一旦网络断掉就需要全部重传,Finder采用分片的方式,每次只上传一段数据,如果失败自动重新上传这一段,并且针对每一段都自动重试3次。

运行截图

集群支持 支持集群部署,允许你部署多台机器,通过其中任意一台机器即可管理集群内的所有机器上的文件,并可监控集群内任意一台机器上的日志文件。 支持国际化,下图是英文版的截图。2.2.0版本新增更多配置项,允许你配置文件列表显示的操作按钮,允许你配置工作空间为只读模式。更多配置项请参见finder.conf中的说明。 集群支持

日志查看
支持超大的文本文件,从几M到几十G都流畅自如。支持点击文件的任意位置查看。 日志查看

grep示例
输入关键字进行查找,支持正则。 grep示例

less示例
绿色的进度条可以随着内容的滚动自动显示当前进度,也可以单击某一个位置直接跳转到文件的指定位置显示。可以指定文件的字符集,也可以在finder的文件夹页面设置全局字符集和less的显示样式,包括字体,字体颜色,背景颜色等。 less示例

tail示例
tail支持查找,输入查找内容之后,tail将只显示包含指定内容的数据。支持正则。 tail示例

音频和视频播放
finder支持播放视频和音频,需支持h5的浏览器。音频和视频文件必须是h5支持的格式(mp3, mp4, mpeg)。 在播放音频的同时仍然允许切换不同的文件夹。你也可以将音频播放器最小化到左下角。 音频播放

文件管理
支持全键盘操作,几乎所有的操作都有对应的快捷键,并且尽可能与windows资源管理器的快捷键相同。 支持多文件剪切,拷贝。 支持任意大小的文件上传,采用分段上传的方式,不受服务器超时限制。仅限支持h5的浏览器。 支持下载文件的断点续传,支持使用多线程工具下载文件。 文件管理

集成到其他系统

finder非常容易集成到你现有的系统中,只有一个jar文件, 依赖slf4j-xxx.jar,所以只需将finder提供的jar包放到你的应用里面即可. 以下集成方式都需要先将classes\META-INF\conf目录中的所有文件拷贝到你应用的WEB-INF/classes/META-INF/conf目录

  1. 第一种集成方式, 需要重启
    1.1 将release/finder-web.2.0.0.jar拷贝到你的应用的WEB-INF/lib目录.
    1.2 修改你应用的web.xml, 参考webapp/WEB-INF/web.xml, 将FinderServlet注册到你的web应用中.
    1.3 重启你的应用,访问/finder即可.

  2. 第二种集成方式, 需要重启
    2.1 将release/finder-web.2.0.0.jar拷贝到你的应用的WEB-INF/lib目录.
    2.2 将webapp/finder.jsp拷贝到你的应用目录, 文件名可以改为任意你喜欢的名称.
    2.3 重启你的应用,访问/finder.jsp即可.

  3. 第二种集成方式, 不需要重启
    3.1 将release/finder-web.2.0.0.jar拷贝到你的服务器的任意目录, 例如/tmp/finder-web.2.0.0.jar.
    3.2 将webapp/test.jsp拷贝到你的应用目录, 文件名可以改为任意你喜欢的名称.
    3.3 修改test.jsp, 将里面加载jar包的位置改为/tmp/finder-web.2.0.0.jar
    3.4 访问/test.jsp即可.

独立部署

  1. 移除TOMCAT_HOME\webapps目录下的所有文件和目录。如果有重要数据,请注意备份。
  2. 在TOMCAT_HOME\webapps目录下新建ROOT目录,注意必须是大写的ROOT。
  3. 解压finder.war中的所有文件到TOMCAT_HOME\webapps\ROOT
  4. 启动tomcat即可。

系统设置

部署完成之后需要进入后台做些安全设置

  1. 使用admin登录,点击顶部的设置菜单进入后台,进入主机管理菜单,为当前主机添加工作空间。
  2. 进入系统设置-安全设置,重新生成安全key和签名key,点击保存并同步到集群。

注:线上环境请注意修改logback.xml的日志级别为INFO

测试测试

  1. 测试日志功能请找一个较大的日志文件进行测试,太小的日志文件显示不出来效果。
  2. 注:workspace.xml中可以配置任意多个workspace,每一个workspace的name可以随便指定一个名字,文件夹也是自定义的,你可以指向任意目录,不一定非得指到logback.xml中配置的目录。 finder并不限制你要查看的文件,你可以使用日志监控功能监控任意的文件,但请不要查看非文本文件,less和tail都是按行拉取的。 如果一个文件超大又不存在换行符,你的服务器或者浏览器可能会崩溃,所以请只监控文本文件。 less和tail功能在当前窗口不会显示过多的内容,以避免浏览器消耗太多内存,当内容超过一定数量的时候会自动将处于窗口之外的内容清除。 当你再此滚动到那个位置的时候会再次加载,这个对用户来说是感觉不出来的。 所以理论上less和tail功能可以实时监控任意大小的日志文件,当你有一个超大的日志文件,一般百兆以上,其他文本编辑器打不开时,finder是个很好的工具。 less可以任意定义文件位置,tail只实时的显示文件的尾部数据。tail也具有grep功能,可以只监控关心的数据。
  3. 开两个窗口,一个使用tail打开finder的日志,另外一个访问/log.jsp,不断刷新log.jsp,可以看到tail不断刷新日志的效果。如果你把finder部署在了生产环境,请删除log.jsp文件。

集群支持

Finder的集群被设计为对外提供幂等服务,是可以做负载均衡的,也就是说你访问集群内任何一台机器都可以操作集群内所有的机器上的文件,无论分段上传还是断点下载,finder集群负责保证客户端对同一个文件的多次请求能够正确到达目标机,例如分段上传,Finder集群会确保每个分段都能上传到集群中的指定主机上,而不会因为负载均衡导致每个文件片段上传到了不同的机器上。

二次开发

由于Finder部分需求的特殊性(要求极小,易部署并支持热部署),所以Finder的最终输出只有一个jar包,进行二次开发需要对Finder的机制比较了解。

常见问题

  1. 中文乱码 请在tomcat的server.xml中配置URIEncoding: <Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" maxPostSize="1073741824"/>

maxPostSize:tomcat允许的最大post body大小,finder默认大文件分段上传每次上传5M的数据,此处配置必须大于5M(请求头 + 数据5M)。

BUG反馈

我自己发现的bug都会及时修改并提交。使用过程中发现的bug也请反馈给我,我会及时修改。另外发现bug也请及时下载新版本。 也可进QQ群反馈:341624652

Comments ( 0 )

Sign in for post a comment

1
https://gitee.com/xiahuibin/finder-web.git
git@gitee.com:xiahuibin/finder-web.git
xiahuibin
finder-web
finder-web
master

Search