一.介绍

Caddy,用Go写的一款相当优秀的Web服务器软件,它有不少很有特色的功能,国内目前来说用的不多,不过也逐渐有越来越多的人知道了,它有个特色的插件功能,其中一款插件是FileManager,可以类似H5ai一样提供一个美化的Index目录列表,但是功能更多,不仅能下载,还能上传。但是,我一直不知道这玩意竟然还有个独立版本,最近Loc有人提到,我才发现这个确实不错。所以另外介绍一下,当然,之后也可能顺便介绍一下FileRun,不过这个免费版我感觉功能限制的有点多,还是需要考虑下。

二.安装

简单到极致,看过我博客以前那些介绍用Go写的程序的文章的同学肯定对某个特点印象深刻,那就是安装贼鸡儿方便,特别是在官方提供现成的二进制文件的情况下,那就是下载--解压--done。FileManager秉承了这个优点,官方甚至不需要你自己下载对应的二进制文件,全是一键脚本,自动判断环境一步到位。

 
1
2
3
4
5
6
7
#Linux下, 提供curl和wget两种
curl -fsSL https://henriquedias.com/filemanager/get.sh | bash
 
wget -qO- https://henriquedias.com/filemanager/get.sh | bash
 
#Windows下, 需要以管理员运行powershell然后安装
iwr -useb https://henriquedias.com/filemanager/get.ps1 | iex

刺激不刺激,当然,你在安装了Caddy的情况下只需要打开http.filemanager插件就行了

此外,现在Docker这么火当然也少不了它

 
1
2
3
4
5
6
docker run \
-v /path/to/sites/root:/srv \
-v /path/to/config.json:/config.json \
-v /path/to/database.db:/database.db \
-p 80:80 \
hacdias/filemanager

这个采用的是默认配置,如下

 
1
2
3
4
5
6
7
8
9
10
{
"port": 80,
"address": "",
"database": "/etc/database.db",
"scope": "/srv",
"allowCommands": true,
"allowEdit": true,
"allowNew": true,
"commands": []
}

你也可以把配置写到命令里

 
1
2
3
4
5
6
7
8
9
docker run \
-v /path/to/sites/root:/srv \
-v /path/to/database.db:/database.db \
-p 80:80 \
hacdias/filemanager
--port 80
--database /database.db
--scope /srv
--other-flag other-value

当然,有一点需要注意,那就是FileManager不支持SSL,所以如果需要SSL或者说想用HTTP/2加速,请换Caddy配合插件

下面介绍一下,FileManager的命令行参数以及配置文件

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
-a, --address 监听地址,默认为空,即为监听所有地址
-b, --baseurl 根地址,即为访问的入口地址
--prefixurl 前缀地址
-c, --config 指定配置文件
-d, --databaseis 数据库文件地址,默认为 “./filemanager.db”
-l, --log 显示错误日志记录器,可为 ‘stdout’, ‘stderr’ 或者是一个文件路径,默认为“stdout”
-p, --port 监听端口,默认为0,即为随机的可用端口
--staticgen 指定你是否需要启用静态网站生成器,可用 jekyll 以及 hugo
-v, --version 打印程序版本
--recaptcha-key ReCAPTCHA 站点 key ,配置后可在登陆处启用ReCAPTCHA
--recaptcha-secret ReCAPTCHA 站点 secret key ,配置后可在登陆处启用ReCAPTCHA
 
#下面的选项用于为新用户配置默认设置
--allow-commands 允许使用命令的默认值,默认为 true
--allow-edit 允许修改设置的默认值,默认为 true
--allow-new 允许新建设置的默认值,默认为 true
--allow-publish 允许发布功能,默认为 true
--view-mode 新用户默认查看视图,默认为 mosaic
--locale 新用户默认语言,可选 en, pt, jp, zh-cn, zh-tw (英语, 葡萄牙语, 日语, 简体中文, 繁体中文)
--commands 新用户可用命令,以空格分隔,默认为 “git svn hg”
--no-auth 禁用认证,启用这个选项会将权限设置为默认
-s, --scope 新用户的默认目录,默认为工作目录

下面举个栗子方便理解,在监听所有地址的80端口,数据库指定为/etc/fm.db,新用户默认可访问/data目录

 
1
filemanager --port 80 --database /etc/fm.db --scope /data

FileManager的配置文件支持多种写法,分别为JSON,YAML以及TOML

IN JSON:

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
{
"port": 80,
"noAuth": false,
"baseURL": "/admin",
"address": "127.0.0.1",
"reCaptchaKey": "",
"reCaptchaSecret": "",
"database": "/path/to/database.db",
"log": "stdout",
"plugin": "",
"scope": "/path/to/my/files",
"allowCommands": true,
"allowEdit": true,
"allowNew": true,
"commands": [
"git",
"svn"
]
}

In YAML:

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
port: 80
baseURL: /admin
noAuth: false
address: 127.0.0.1
reCaptchaKey: ''
reCaptchaSecret: ''
database: "/path/to/database.db"
log: stdout
plugin: ''
scope: "/path/to/my/files"
allowCommands: true
allowEdit: true
allowNew: true
commands:
- git
- svn

In TOML:

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
port = 80
baseURL = /admin
address = 127.0.0.1
noAuth = false
reCaptchaKey = ''
reCaptchaSecret = ''
database = "/path/to/database.db"
log = stdout
plugin = ''
scope = "/path/to/my/files"
allowCommands = true
allowEdit = true
allowNew = true
commands = ["git", "svn"]

建议看哪种顺眼选哪种,没必要纠结太多,反正也不是天天改

对了,默认用户名密码均为admin,其他看下图

这是登陆界面,所谓自建云盘嘛,虽然不一定有啥见不得人的东西,但是还是要上个锁的

在用户设置中,可以配置ACL规则以便多人使用的情况下防止搞事,当然自定义CSS这种东西提供了更多的可能性

支持命令操作,是不是很刺激,这样就能玩出更

Go -- FileManage 自建云盘的更多相关文章

  1. Cloudreve 自建云盘实践,我说了没人能限得了我的容量和速度!

    作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 为啥要用自建网盘,市面上的云盘不香了? 每一个用户需求的背后都是因为有场景存在,而这 ...

  2. [IT新应用]家用NAS,自建“360云盘”

    360云盘也快要离开了.同事中有人开始尝试使用群晖NAS.西数的NAS来自建云了. [功能对比] [选择参数] [口碑评价]

  3. 手把手教你Chrome浏览器安装Postman(含下载云盘链接)【转载】

    转载自:http://www.ljwit.com/archives/php/278.html 说明: Postman不多介绍,是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件.本文主要 ...

  4. Nextcloud私有云盘在Centos7下的部署笔记

    搭建个人云存储一般会想到ownCloud,堪称是自建云存储服务的经典.而Nextcloud是ownCloud原开发团队打造的号称是“下一代”存储.初一看觉得“口气”不小,刚推出来就重新“定义”了Clo ...

  5. 基于LAMP php7.1搭建owncloud云盘与ceph对象存储S3借口整合案例

    ownCloud简介 是一个来自 KDE 社区开发的免费软件,提供私人的 Web 服务.当前主要功能包括文件管理(内建文件分享).音乐.日历.联系人等等,可在PC和服务器上运行. 简单来说就是一个基于 ...

  6. 政务私有云盘系统建设的工具 – Mobox私有云盘

    序言 这几年,智慧政务已经成为了政府行业IT建设发展的重要进程.传统办公方式信息传递速度慢.共享程度低.查询利用难,早已成为政府机关获取和利用信息的严重制约因素.建立文档分享共用机制,加强数据整合,避 ...

  7. .NET Core的文件系统[5]:扩展文件系统构建一个简易版“云盘”

    FileProvider构建了一个抽象文件系统,作为它的两个具体实现,PhysicalFileProvider和EmbeddedFileProvider则分别为我们构建了一个物理文件系统和程序集内嵌文 ...

  8. 体验阿里云SSD云盘+ECS(I/O优化)的性能

    阿里云推出SSD云盘+I/O优化的ECS已有一段时间,这个功能优化可以为ECS服务器与SSD云盘提供更好的网络能力.据阿里云官网介绍,SSD云盘最高提供20000次随机读写IOPS.256MB/S吞吐 ...

  9. 【转】Expire Google Drive Files 让Google Docs云盘共享连接在指定时间后自动失效

    最近在清理Google Docs中之前共享过的文件链接,发现Google Docs多人协作共享过的链接会一直存在,在实际操作中较不灵活.正好订阅的RSS推送了Pseric写的这篇文章 - Expire ...

随机推荐

  1. C json实战引擎 二 , 实现构造部分

    引言 这篇博文和前一篇 C json实战引擎一,实现解析部分设计是相同的,都是采用递归下降分析. 这里扯一点 假如你是学生 推荐一本书 给 大家 自制编程语言 http://baike.baidu.c ...

  2. Nginx集群配置与redis的session共享策略

    一.什么是Nginx? Nginx (engine x) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器.Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Ramb ...

  3. 数据库简述(以MySQL为例)

    一.数据库中的概念 1.数据库是用户存放数据.访问数据.操作数据的存储仓库,用户的各种数据被有组织地存放在数据库中.可以随时被有权限的用户查询.统计.添加.删除和修改.可以说,数据库是长期存储在计算机 ...

  4. laravel 中的入口文件报错

    1.此次是由于加载的配置文件的编码错误导致的.例:conf.php

  5. ExecutorService 用例

    import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class Tes ...

  6. Oracle 通用存储过程

    CREATE OR REPLACE PROCEDURE P_Pub_GetList ( StrWhere varchar2, ---查询条件(不带where关键字的查询条件) TableName va ...

  7. 五:ZooKeeper的集群命令客户端的链接和命令操作的使用

    一:zookeeper客户端链接[1]进入zookeeper的安装目录的bin目录下         # cd /opt/zookeeper/bin[2]敲击链接客户端的命令(zkCli.sh)    ...

  8. Jmeter+Jenkins持续集成(Ant运行脚本)

    Jmeter接口测试脚本运行后生成的是jtl(xml)格式的文件,这些文件不具备可读性,所以我们要把他转化为可以阅读的html格式报告. Ant是一个功能强大的打包编译工具.我们使用他的目的是将xml ...

  9. jQuery源码浅析

    这几天看了下jQuery源码,有些收获,解答了我以前对jQuery的疑问,现在我把收获分享给大家. 一.jQuery为何弄成自执行函数,以及为何在引用了jquery文件之后,可以通过$或jQuery来 ...

  10. windows10 自带的OpenSSH Client(Beta)

    我不知道其他版本有没有 ,我是windows10 专业版,版本1709,OS内部版本16288.1 安装过程: 1.我的电脑上面的卸载或更改程序 2.管理可选功能 3.添加功能 4.重启电脑,搞定 O ...