1. 前言
之前因为家里弄了一个 NAS ,有远程文件管理的需求,之前也试过 alist ,发现不是很好用,有很多地方也不满足自己的需求,就自己开发了一个参考 Windows 资源管理器 的工具,周末慢慢写的,一直是在自用。昨天看到 alist 被恶意公司收购的帖子,就想到要不要开源出来,看下大家有想用的没。
2. 介绍
工具我起名字为 InoExplorer ,在主机上部署后支持通过浏览器进行文件管理,同时支持添加网盘,支持跨网盘传输,因为一直也是自己一个人用,UI 很粗犷
2.1 视图查看
- 左侧为路径收藏夹
- 右下角为文件夹信息展示
- 支持树形查看
- 支持多视图查看
- 支持排序
- 支持文件名过滤查找
PS: 多文件目录查看也很快,之前有一个监控录像存储目录有接近 3000 个文件,不知道为啥用 alist 查看需要 12 秒 多,用 InoExplorer 只用不到 1 秒
2.2 文件选择
- 支持鼠标框选
- 支持 shift+鼠标点击连选
- 支持 ctrl+鼠标点击多选
- 左下角为选中信息展示
2.3 文件操作
- 支持在已选择项上 拖拽移动(支持跨视图)(请忽略拖拽的图标为一个灰色方块)
- 支持右键菜单
2.4 任务窗口
2.5 文件查看
- 底部是任务栏
- 支持图片查看
- 支持视频播放 (自动下一部和快捷键下一部)
- 支持文本查看编辑 ( CodeMirror + MonacoEditor )
- 查看窗口支持拖拽位置和大小
2.6 驱动支持
- 支持本地文件
- 支持 115 网盘
- 支持夸克网盘(上传文件还未实现)
- 支持百度网盘(上传文件还未实现)
- 支持远端 InoExplorer (未测试部分功能未实现)
- 网盘都实现了扫描登录,无需自己去获取 cookie
- PS1:因为自己只用到了这几个网盘,所有只做了这 3 个
- PS2:网盘查看的文件树做了服务端缓存,同时对网盘的接口请求做了请求池和队列控制,避免网盘接口短时间大量请求导致风控
- PS3: 支持配置一个网址,在扫描登录后,发送网盘 cookie 到该网址,我是使用该功能 把通过 InoExplorer 登录各网盘的 cookie 发送到自己的 Deno Deploy 服务,然后写了一个浏览器脚本,每次进网盘官方页面的时候去读取 Deno Deploy 上的 cookie ,实现了浏览器查看网盘官方页面复用 InoExplorer 里的 cookie ,自动登录,也避免了在官方网页上进行登录导致 InoExplorer 中的 cookie 失效问题
2.7 其他
- 文件下载可不经过服务器代理下载时自动重定向到原始直链,需代理下载时重定向到服务器代理下载链接
- 上传逻辑复用(服务器本地文件上传网盘和浏览器选择文件上传网盘),服务端使用的 nodejs
- 对外提供 webdav 协议 做了 80%,应该是除了写入文件和读取文件,其他文件操作相关的接口都实现(之前用了下,现在好久没用过了)
- 驱动支持上游 webdav 协议 之前也做了,不过因为没有使用到,也没测试,后面就把代码删了(记录应该还在)
- 无用户和权限管理功能,打开网址就能操作
- 做的不好 UI 丑陋 轻喷
3. 询问
现在就是想看下想使用的人多不,多的话考虑开源出来
不过如果要开源之前,主要还有几点要改的
- 存储列表和收藏夹配置是写在配置文件里面的,程序启动时读取,需要修改为 新增一个配置页面 动态配置存储列表,右键菜单增加添加删除收藏功能
- 自用是通过 node 运行的,需要做一个打包为各平台二进制的工作
- 提供 docker 镜像
- 增加基础的登录鉴权
- 只测试了 linux 和简单测试了下 Windows ,macOS 未测试(按逻辑应该基本能用)
- ...