简介 这是一个开源的静态文件分享工具，可以把需要分享的文件放到指定的文件夹里面，然后分享出来，类似ftp的效果，是在github上开源的。 项目地址 地址：https://github.com/sigoden/dufs 环境 项目介绍里面说明了支持的环境有windows，linux和mac，我这里使用的是linux（Almlinux），远程连接到服务器的步骤省略 使用方法 下载 打开项目地址 点击左上角标签 点击最新版 选择对应自己服务器的系统和硬件的版本，右键，复制链接地址 连接到服务器 使用wget命令下载 wget https://github.com/sigoden/dufs/releases/download/v0.43.0/dufs-v0.43.0-x86_64-unknown-linux-musl.tar.gz 下载完成后使用ls命令就可以看到了 解压 使用tar -zxvf命令解压下载下来的文件 tar -zxvf dufs-v0.43.0-x86_64-unknown-linux-musl.tar.gz 使用ls命令查看解压出来的文件，可以看到解压出来只有一个dufs文件 运行 使用./运行 ./dufs 这是时候其实已经运行起来的，但是是以默认参数进行运行，可以访问ip:端口查看 配置运行参数 首先停止运行，按ctrl+c结束运行 使用mkdir命令创建一个文件夹，名字自定义 mkdir Dufs 使用mv命令把运行文件移动到刚刚创建的文件夹 mv dufs Dufs/ 使用cd命令进入Dufs文件夹 cd Dufs 使用vi新建配置文件，配置文件后缀名是.yaml vi dufs-config.yaml 按i进入编辑模式，看到左下角有“插入”两个字就是进入编辑模式了 把下面的配置文件改一下复制粘贴进去 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，不启用路径前缀 修改完成后按esc键退出编辑模式，然后输入:wq退出并保存 带配置文件运行 ./dufs -c dufs-config.yaml 成功运行 测试 打开浏览器，输入服务器地址加端口号访问，可以看到正常访问，而且指定的文件夹下的文件是对的，说明配置文件指定的文件夹生效，没有登录状态下只能下载和搜索，不能进行其他操作，权限配置也是对的 点就右上角进行登录 输入用户名和密码，点击登录 发现权限有所增加，到此处就结束了，已经运行起来了 开机自启 什么？有人说还没有配置开机自启？这个就需要看我的另外一个文章了，在博客上搜索开机自启即可