简介

这是一个开源的静态文件分享工具,可以把需要分享的文件放到指定的文件夹里面,然后分享出来,类似ftp的效果,是在github上开源的。

27.png

项目地址

地址:https://github.com/sigoden/dufs

环境

项目介绍里面说明了支持的环境有windows,linux和mac,我这里使用的是linux(Almlinux),远程连接到服务器的步骤省略

使用方法

下载

打开项目地址

1.png

点击左上角标签

2.png

点击最新版

3.png

选择对应自己服务器的系统和硬件的版本,右键,复制链接地址

4.png

连接到服务器

5.png

使用wget命令下载

wget https://github.com/sigoden/dufs/releases/download/v0.43.0/dufs-v0.43.0-x86_64-unknown-linux-musl.tar.gz

6.png

下载完成后使用ls命令就可以看到了

7.png

解压

使用tar -zxvf命令解压下载下来的文件

tar -zxvf dufs-v0.43.0-x86_64-unknown-linux-musl.tar.gz

8.png

使用ls命令查看解压出来的文件,可以看到解压出来只有一个dufs文件

9.png

运行

使用./运行

./dufs

10.png

这是时候其实已经运行起来的,但是是以默认参数进行运行,可以访问ip:端口查看

11.png

配置运行参数

首先停止运行,按ctrl+c结束运行

12.png

使用mkdir命令创建一个文件夹,名字自定义

mkdir Dufs

13.png

使用mv命令把运行文件移动到刚刚创建的文件夹

mv dufs Dufs/

14.png

使用cd命令进入Dufs文件夹

cd Dufs

15.png

使用vi新建配置文件,配置文件后缀名是.yaml

vi dufs-config.yaml

16.png

按i进入编辑模式,看到左下角有“插入”两个字就是进入编辑模式了

17.png

把下面的配置文件改一下复制粘贴进去

serve-path: '.'
bind: 0.0.0.0
port: 5000
path-prefix: /dufs
hidden:
  - tmp
  - '*.log'
  - '*.lock'
auth:
  - admin:admin@/:rw
  - user:pass@/src:rw,/share
  - '@/'  # According to the YAML spec, quoting is required.
allow-all: false
allow-upload: true
allow-delete: true
allow-search: true
allow-symlink: true
allow-archive: true
enable-cors: true
render-index: true
render-try-index: true
render-spa: true
assets: ./assets/
log-format: '$remote_addr "$request" $status $http_user_agent'
log-file: ./dufs.log
compress: low
tls-cert: tests/data/cert.pem
tls-key: tests/data/key_pkcs1.pem

配置文件解释:

字段 选项 备注
serve-path .或者文件夹绝对路径 自定义共享文件夹路径,.为当前文件夹,如需要特定文件夹则填写绝对路径
bind 0.0.0.0或者指定ip地址 监听地址,0.0.0.0代表所有地址可以访问,如果需要指定的电脑可以访问则填写指定电脑的ip地址
port 默认5000,可以自定义 监听端口,默认5000,可以自定义,例如80等没有被占用的端口
path-prefix 默认/dufs,可以自定义或者删除 这是设置访问路径前缀,默认是/dufs,那么访问的时候就需要ip+端口/dufs才能访问,如果想要直接ip+端口访问则删除这一行或者使用#号注释掉即可
hidden 指定的文件夹,文件名或者文件后缀 隐藏指定的文件夹或者是文件名或者是指定的文件后缀,例如上面就隐藏了tmp文件夹和后缀名为log的文件以及后缀名为lock的文件
auth 设置用户名和密码 用:分割用户名和密码,@后面是指定可以访问的文件夹,文件夹后的:后面是权限,r是只读,w是写,rw就是可读写,'@/'是匿名访问
allow-all false或true 所有权限,false为关闭,true为打开,当allow-all为false时关闭所有权限,除了在auth设置的用户,也就是说当allow-all为false时,只有指定用户可以访问
allow-upload false或true 是否允许上传文件,false为关闭,true为打开
allow-delete false或true 是否允许删除文件,false为关闭,true为打开
allow-search false或true 是否允许搜索,false为关闭,true为打开
allow-symlink false或true 是否允许打开链接符号,false为关闭,true为打开,链接符号相当于快捷方式,当一个文件需要出现在多个文件夹的时候就可以使用这个,这样就不需要把一个文件复制多分到多个文件夹了
allow-archive false或true 是否允许打包下载,false为关闭,true为打开
enable-cors false或true 是否允许跨域支持,false为关闭,true为打开,假设你有一个前端应用,运行在 http://example.com,而文件服务器运行在 http://localhost:5000。没有启用 CORS 时:如果你从 http://example.com 发起一个 AJAX 请求去访问 http://localhost:5000/ 上的文件,浏览器会阻止这个请求,并抛出错误。启用 CORS 后:服务器在响应中包含允许跨域的 CORS 头部
render-index false或true 自定义前端,优先加载index文件,如果目录下有 index.html,就渲染它作为这个目录的页面
render-try-index false或true 这个是一个兜底机制,如果访问的路径是一个目录但路径没有/结尾,它会尝试自动补全/并去加载index.html
render-spa false或true 专门为 前端单页应用(SPA) 准备的,比如你打包好的React/Vue项目,当访问一个不存在的路径时,会自动返回根目录下的index.html,交给前端路由系统处理
assets 文件路径 assets 是静态资源目录,适用于前端自定义
log-format 默认'remote_addr "request" statushttp_user_agent' 定义日志格式,remote_addr客户端的 IP 地址(谁访问了),request请求的内容,比如 GET /dufs/file.txt HTTP/1.1,status响应状态码,比如 200、404、500,http_user_agent浏览器/客户端的标识(User-Agent)
log-file 默认./dufs.log,可以修改 输出日志文件的路径和文件名
compress off/low/medium/high 打包下载压缩级别,off不启用压缩,low启用压缩,但压缩率和性能平衡,medium比较推荐,压缩率高一点,稍微耗点 CPU,high压缩率最高,但会明显增加 CPU 消耗
tls-cert 文件路径及文件名 ssl证书公钥,需要pem格式
tls-key 文件路径及文件名 ssl证书私钥,需要pem格式,如果不需要https可以把这两个删除

下面这个是我的配置文件

serve-path: '/root/Dufsdata'
bind: 0.0.0.0
port: 5000
hidden:
  - tmp
  - '*.log'
  - '*.lock'
auth:
  - admin:admin@/:rw
  - '@/'  
allow-all: false
allow-upload: true
allow-delete: true
allow-search: true
allow-symlink: true
allow-archive: true
enable-cors: true
log-format: '$remote_addr "$request" $status $http_user_agent'
log-file: ./dufs.log
compress: low

我指定了共享文件夹在root下的Dufsdata文件夹。然后取消了一个用户,不启用ssl,不启用路径前缀

18.png

修改完成后按esc键退出编辑模式,然后输入:wq退出并保存

19.png

带配置文件运行

./dufs -c dufs-config.yaml

20.png

成功运行

21.png

测试

打开浏览器,输入服务器地址加端口号访问,可以看到正常访问,而且指定的文件夹下的文件是对的,说明配置文件指定的文件夹生效,没有登录状态下只能下载和搜索,不能进行其他操作,权限配置也是对的

22.png

点就右上角进行登录

23.png

输入用户名和密码,点击登录

24.png

发现权限有所增加,到此处就结束了,已经运行起来了

25.png

开机自启

什么?有人说还没有配置开机自启?这个就需要看我的另外一个文章了,在博客上搜索开机自启即可

二维码

发表评论