dufs
一个独特的实用文件服务器,它支持静态文件服务、文件上传、搜索、访问控制以及 WebDAV 等功能。
Github地址
https://github.com/sigoden/dufs
特性
• 静态文件服务
• 将文件夹下载为 zip 文件
• 上传文件和文件夹(支持拖放)
• 创建/编辑/搜索文件
• 支持断点续传和部分上传/下载
• 访问控制
• 支持 HTTPS
• 支持 WebDAV
• 易于使用 curl 命令行工具
安装
使用 Cargo 安装
shell
cargo install dufs
使用 Docker 安装
shell
docker run -v `pwd`:/data -p 5000:5000 --rm sigoden/dufs /data -A
使用 Homebrew 安装
shell
brew install dufs
在 macOS、Linux、Windows 上安装
从 GitHub Releases 下载二进制文件,解压并添加 dufs 到你的 $PATH。
命令行界面(CLI)
Dufs 提供了丰富的命令行选项,可以指定配置文件、绑定地址、监听端口、路径前缀等。它还支持多种授权规则,允许或禁止上传、删除、搜索等操作,并能自定义 HTTP 日志格式。
示例
• 以只读模式服务当前工作目录:
dufs
• 允许所有操作(如上传/删除/搜索/创建/编辑):
dufs -A
• 只允许上传操作:
dufs --allow-upload
• 服务特定目录:
dufs Downloads
• 服务单个文件:
dufs linux-distro.iso
• 服务单页应用程序(如 React/Vue):
dufs --render-spa
• 服务带有 index.html 的静态网站:
dufs --render-index
• 需要用户名/密码:
dufs -a admin:123@/:rw
• 监听特定主机/IP:
dufs -b 127.0.0.1 -p 80
• 监听 Unix 套接字:
dufs -b /tmp/dufs.socket
• 使用 HTTPS:
dufs --tls-cert my.crt --tls-key my.key
API
Dufs 提供了一系列 API,允许用户通过 curl 命令行工具或其他 HTTP 客户端进行文件上传、下载、删除、创建目录、移动文件/文件夹、列出/搜索目录内容等操作。同时,它还支持带授权的基本认证和摘要认证,以及断点续传的下载和上传功能。