实用文件服务器Dufs

什么是 Dufs ?

Dufs 是一款与众不同的实用文件服务器,支持静态服务、上传、搜索、访问控制、webdav

软件功能

  • 提供静态文件服务
  • 将文件夹下载为 zip 文件
  • 上传文件和文件夹(拖放)
  • 创建/编辑/搜索文件
  • 支持可恢复/分段上传和下载
  • 访问控制
  • 支持 https
  • 支持 WebDAV
  • 可与 curl 轻松使用

安装

在群晖上以 Docker 方式安装。

Dufs 本身支持 cli ,所以更适合采用 docker cli 方式运行

在注册表中搜索 dufs ,选择第一个 sigoden/dufs,版本选择 latest

本文写作时, latest 版本对应为 v0.41.0

docker 文件夹中,创建一个新文件夹 dufs,并在其中建一个子文件夹 data

文件夹 装载路径 说明
docker/dufs/data /data 存放文件

端口

本地端口不冲突就行,不确定的话可以用命令查一下

1
2
# 查看端口占用
netstat -tunlp | grep 端口号
本地端口 容器端口
5032 5000

默认没有对外暴露端口

需要点 + 号自行添加

环境

没有环境变量,但是因为 Dufs 支持命令行,所以可以输入不同的命令来实现不同的功能

例如:/data -A 表示能对 /data 目录进行所有的操作,包括如上传/删除/搜索/创建/编辑。。。

Dufs 支持的 CLI 命令可以参考官方的文档:https://github.com/sigoden/dufs#cli

命令行安装

如果你熟悉命令行,可能用 docker cli 更快捷

1
2
3
4
5
6
7
8
9
10
11
12
13
# 新建文件夹 dufs 和 子目录
mkdir -p /volume1/docker/dufs/data

# 进入 dufs 目录
cd /volume1/docker/dufs

# 运行容器
docker run --rm -it \
--name dufs \
-p 5032:5000 \
-v $(pwd)/data:/data \
sigoden/dufs:latest \
/data -A

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

1
2
3
4
5
6
7
8
9
10
11
version: '3'

services:
dufs:
image: sigoden/dufs
container_name: dufs
ports:
- 5032:5000
volumes:
- ./data:/data
command: /data -A

然后执行下面的命令

1
2
3
4
5
6
7
8
9
10
# 新建文件夹 dufs 和 子目录
mkdir -p /volume1/docker/dufs/data

# 进入 dufs 目录
cd /volume1/docker/dufs

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:5032 就能看到主界面

可以上传文件

对文件可以下载、移动、删除和编辑

添加认证

如果你希望添加用户认证,可以将命令改为 /data -a username:password@/:rw

1
2
3
4
5
6
7
8
9
10
# 进入 dufs 目录
cd /volume1/docker/dufs

# 运行容器
docker run --rm -it \
--name dufs \
-p 5032:5000 \
-v $(pwd)/data:/data \
sigoden/dufs:latest \
/data -a username:password@/:rw

在浏览器中输入 http://群晖IP:5032,会弹出登录框

输入设置的用户名和密码之后才会显示主界面

WebDAV

RaiDrive 为例

连上之后会看到之前上传的文件

参考文档

sigoden/dufs: A file server that supports static serving, uploading, searching, accessing control, webdav…
地址:https://github.com/sigoden/dufs

sigoden/dufs - Docker Image | Docker Hub
地址:https://registry.hub.docker.com/r/sigoden/dufs