390741035421293eb9b96f67dd7c686223e7cede
Release / deploy (push) Successful in 2m26s
ufile
一个单二进制运行的轻量文件快传服务。支持多用户权限、限时保存、限次访问、6 位取件码,以及无需登录的下载和预览链接。文件管理员可以查看并删除全部当前有效文件。
构建
需要 Go 1.24+ 与 Node.js 20+:
./build.sh
也可以运行 make build。构建脚本会先安装并编译前端,再通过 go:embed 将产物写入最终的 ufile 二进制;SQLite 使用纯 Go 驱动,不依赖 CGO。
运行
./ufile --data ./data --address 0.0.0.0:6616
参数:
--data:文件目录,默认./data--db:SQLite 文件路径;留空时为<data>/data.db--address:监听地址,默认0.0.0.0:6616
首次使用空数据库启动时,终端会输出 admin 的随机密码。该账号第一次登录后必须立即修改密码。
拥有用户管理权限的账号只能授予自己已有的权限,也不能编辑、重置或删除权限高于自己的账号。
分享链接
- 下载:
/uf/<file_hash> - 预览:
/uf/<file_hash>?preview=true - 有取件码时追加:
code=<6位取件码>
预览也会消耗一次访问次数。文件过期、访问次数耗尽或所属用户被删除时,数据库记录和磁盘文件都会被清理。
设置取件码的文件会统一记录校验、下载和预览请求中的连续失败;缺失或错误的取件码累计 5 次后,文件会立即从数据库和磁盘删除,正确校验会清零失败次数。
Languages
Go
76%
JavaScript
20.6%
Dockerfile
1%
CSS
0.9%
Shell
0.9%
Other
0.6%