黑帽联盟

标题: FolderMagic:一键文件列表目录程序 支持webdav,字幕 [打印本页]

作者: huangjia    时间: 2023-10-18 20:06
标题: FolderMagic:一键文件列表目录程序 支持webdav,字幕
本帖最后由 huangjia 于 2023-10-18 20:19 编辑

FolderMagic

简单易用,无需部署的列表程序。

特性:



这不是一个Onedrive/GoogleDrive/Dropbox/世纪互联/OSS 的列表程序,这是硬盘目录列表程序


使用方式

本程序为linux amd64可执行文件,打开链接:https://github.com/FolderMagic/FolderMagic/raw/master/FolderMagic 下载后执行
chmod +x FolderMagic

然后就可以 ./FolderMagic 运行了,默认共享当前所在文件夹,公开访问无认证。所有可选参数如下:


命令行参数  
  1.   -aria string
  2.         Aria2 RPC地址 (默认 "http://127.0.0.1:6800/jsonrpc"),列表程序将安全的转发这个地址
  3.   -auth string
  4.         认证: "用户名:密码" 认证信息用于网页登录和webdav,不设置则无认证,webdav将被禁用
  5.   -bind string
  6.         监听端口 (默认 ":80"),以 ip:端口 的格式输入,ip可省略,直接输入 :端口 即可监听所有接口
  7.   -gzip
  8.         使用gzip压缩 (默认 true)
  9.   -nosearch
  10.         关闭内置搜索功能
  11.   -page404 string
  12.         自定义404页面
  13.   -root string
  14.         列表根目录 (默认为当前目录)
  15.   -share int
  16.         默认共享链接有效期,单位分钟 (默认 60)
  17.   -wd string
  18.         用于webdav的认证路径, 不可使用根目录 (默认 "/manager")
复制代码
登录界面

11.png


文件浏览

12.png


画廊

13.png


字幕支持

14.png


文件搜索

17.png


移动端优化

18.png


共享管理

16.png


webdav 使用

使用命令行 -auth user:password 启用鉴权后webdav即自动启用。

使用raidrive或其他webdav兼容客户端连接 http://your.domain:port/manager 输入用户名和密码即可连接。

/manager 可使用 -wd 指令更改


文件管理

在网页列表界面右键即可操作文件和文件夹,可以新建和删除。

不使用认证时只能下载文件,不能进行其他操作


文件上传

上传过程中可继续拖入新的文件排队上传。不支持拖文件夹上传。

IE9 及以下浏览器由于浏览器限制无法上传。


视频预览

支持预览mp4, mkv格式,能否成功播放取决于实际视频容器内的编码格式。

字幕需要在视频同一文件夹下,字幕文件名包含视频名称即可,如a.mp4和a_en.srt即为匹配字幕。多个字幕将被同时载入可以在播放界面选择。字幕支持所有常见字幕,ass特效字幕保留文字部分,特效无法支持。


音频预览

支持mp3和ogg,具体支持视浏览器而定。点击即可在左下角开始播放。

音频将被自动解析专辑图片和歌曲名称,歌手。(IE9不支持解析)

点击新的音频可以自动加入播放列表,切换文件夹不影响播放。 (IE9 将中断播放)


图片预览

支持各种常见图片预览,图片将自动生成合适缩略图并使用webp格式(如果浏览器支持)传输

支持psd格式预览,gif格式生成缩略图后没有动画。


Office预览

基于微软在线预览实现。按照微软的预览要求,需要将拥有域名并且FolderMagic需要在80或443端口,否则无法预览。

即:浏览器中显示的地址必须为http://example.com/example.doc 或者 https://example.com/example.ppt 这样的形式才能被预览,否则会显示无法打开文件。


共享管理

通过右键复制的临时链接自动拥有一定时间的有效期(默认60分钟,可通过-share指令更改),到期后无法被下载。

在右下角菜单中选择共享管理即可添加或减少共享时间,也可删除共享

复制的永久链接除非移动文件或更改用户名密码,否则永远有效,不可删除。

重启FolderMagic后,所有临时共享都会失效,永久连接依然有效


AriaNG

通过右下角菜单可以调用内置的ariaNg,并默认指向/jsonrpc路径。FolderMagic将默认转发/jsonrpc到http://127.0.0.1:6800/jsonrpc (aria2 rpc默认路径),可通过-aria 指令更改转发地址

/jsonrpc 需要被认证后才能访问(如果启用了认证的话),所以该转发是安全的,即便没有密码,其他人也无法连接到你的aria2rpc


文件搜索

启动后FolderMagic即开始检索被列表的文件夹并监听文件夹的所有改动。

可以在右下角菜单处打开搜索,也可使用Ctrl+F或者F3立刻开始搜索。

索引文件占用少量内存(约3M/10k文件)。监听文件夹基于inotify,如果存在海量文件夹(如十几万个)则将会占用较多内存,甚至可能用完inotify的所有监听额度,请不要直接共享根目录。

可以用-nosearch指令关闭搜索功能。如果您尝试在例如网络映射文件夹等文件系统上使用FolderMagic,索引可能会变得很慢并占用额外的资源,这时您就可以关闭搜索。

搜索功能关闭后,系统会恢复使用浏览器原生的页面内查找功能。


移动端适配

FolderMagic 针对移动端、触摸屏设计了适合对应设备操作的界面。只要在文件列表轻轻右划即可进入适合iOS和Android的操作界面,方便的进行上传下载和文件管理。


安全措施

启用鉴权后,FolderMagic将只允许授权用户登录,每个IP有5次密码试错机会,失败后将被禁用15分钟,期间FolderMagic任何服务都无法访问。

推荐使用root用户,FolderMagic将使用chroot保护运行环境,完全避免由于潜在的bug而被黑到系统其他核心文件夹的机会。

如不使用root,请开放对应用户的chroot权限。无权限时chroot将被禁用,安全性将被降低。

由于chroot的使用,符号链接文件和符号链接文件夹可能无法使用,因为他们将指向一个完全不同的路径


https

FolderMagic 没有https的原生支持,你可以通过nginx或者caddy做前端来添加https的支持。

假设你的FolderMagic绑定于127.0.0.1:81,以下例子仅供参考:

nginx

  1. server {
  2.         listen              443 ssl;
  3.         server_name         域名或ip;

  4.         add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
  5.         
  6.         #证书文件
  7.         ssl_certificate     www.example.com.crt;
  8.         #私钥文件
  9.         ssl_certificate_key www.example.com.key;
  10.         
  11.         #优先采取服务器算法
  12.         ssl_prefer_server_ciphers on;
  13.         ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  14.         ssl_ciphers "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS !RC4";

  15.         location / {
  16.             proxy_buffering off;
  17.             # 一定要加,否则FolderMagic在反代后不能识别客户ip,直接封锁全部用户
  18.             proxy_set_header X-Real-IP $remote_addr;
  19.             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  20.             proxy_pass http://127.0.0.1:81;
  21.         }
  22. }
复制代码

caddy v1 (v2 内容待添加,目前请自行google解决,本人没使用过caddy :-D)

  1. https://example.com, https://www.example.com {
  2.   gzip
  3.   header / {
  4.       Strict-Transport-Security "max-age=31536000;includeSubdomains;preload"
  5.   }
  6.   ## HTTP 代理配置
  7.   ### 此时访问 example.com,实际访问的是 127.0.0.1:81 的内容
  8.   proxy / 127.0.0.1:81
  9.   header_upstream Host {host}
  10.   header_upstream X-Real-IP {remote}
  11.   header_upstream X-Forwarded-For {remote}
  12.   header_upstream X-Forwarded-Port {server_port}
  13.   header_upstream X-Forwarded-Proto {scheme}
  14.   tls user@example.com
  15. }
复制代码
已知问题





欢迎光临 黑帽联盟 (https://bbs.cnblackhat.com/) Powered by Discuz! X2.5