Dufs轻量级的文件上传下载服务器
Dufs(Distinctive Utility File Server)是一个开源的文件服务器项目,是一个轻量级的文件服务器,旨在提供简单、高效的文件管理和分享功能,支持多种实用特性,提供静态文件服务、文件上传、搜索、访问控制和 WebDAV 支持等功能。它易于部署,界面简洁,支持通过命令行或 Docker 运行,适用于快速搭建文件共享服务。
docker部署
sudo docker run -d -v `pwd`:/data -p 5005:5000 --rm sigoden/dufs /data -A
命令解释:
sudo
:
表示以超级用户(root)权限运行命令。Docker 通常需要 root 权限来管理容器和网络。
docker run
:
启动一个新的 Docker 容器,基于指定的镜像(这里是 sigoden/dufs)。
-d
:
以分离模式(detached mode)运行容器,容器在后台运行,不会占用终端。
-v pwd:/data
:
挂载卷(volume),将主机当前工作目录(通过 pwd 获取)映射到容器内的 /data 目录。主机当前目录中的文件和文件夹可在容器内的 /data 路径下访问,Dufs 将以此目录作为文件服务的根目录。
注意:pwd 是反引号,执行 pwd 命令并将其输出(当前目录路径)插入命令。
-p 5005:5000
:
端口映射,将主机的 5005 端口映射到容器内的 5000 端口,Dufs 默认监听容器内的 5000 端口,外部通过主机的 5005 端口(如 http://localhost:5005)访问服务
--rm
:
容器停止后自动删除,释放资源,避免容器堆积,适合临时使用场景。
sigoden/dufs
:
指定运行的 Docker 镜像,即 Dufs 的官方镜像,托管在 Docker Hub。
/data -A
:
容器启动后执行的命令,运行 Dufs 程序。
/data
: 指定 Dufs 服务的根目录为容器内的 /data(对应主机当前目录)。
-A
: Dufs 的命令行选项,启用所有功能(–allow-all 的缩写),包括:
允许上传文件(–allow-upload)。
允许删除文件(–allow-delete)。
允许搜索文件(–allow-search)。
允许匿名访问(无认证限制)。
这条命令的作用是:在 Docker 容器中运行 Dufs 文件服务器。将主机当前目录挂载到容器内的 /data 目录,作为 Dufs 服务的文件根目录。启动一个后台运行的容器,监听容器内 5000 端口,并通过主机 5005 端口对外提供服务。启用 Dufs 的所有功能(上传、删除、搜索、匿名访问)。容器停止后自动删除,避免资源占用。
Dufs服务启动后,主机当前目录中的文件就可在局域网的电脑上通过 Web 浏览器访问,例如:使用浏览器访问:主机ip+端口,比如 http://192.168.123.14:5005/
如果要设置只有管理员admin有全部权限,其它用户只有下载查看搜索权限,不能删除功能,就使用如下命令:
sudo docker run -d -v `pwd`:/data -p 5005:5000 --rm sigoden/dufs /data -A -a admin:admin@/:rw -a @/ --allow-search --allow-archive
这样,普通用户就只能浏览和下载文件,需要使用管理员admin(密码admin)登录后才能拥有全部权限