yfst7
什么是 gohttpserver ?
gohttpserverHTTPgolangvueUI
gohttpserverdocker
gohttpserveripaapk
安装
在群晖上以 Docker 方式安装。
gohttpservercodeskyblue/gohttpserverlatest
卷
dockergohttpserverdata
docker/gohttpserver/data/app/public
端口
本地端口不冲突就行,不确定的话可以用命令查一下
# 查看端口占用
netstat -tunlp | grep 端口号
70508000
环境变量
gohttpserver
命令gohttpserver
--upload--deletehttp--auth-type http --auth-http username:password
下图演示了上面几个参数
docker cli
# 新建文件夹 gohttpserver 和 子目录
mkdir -p /volume2/docker/gohttpserver/data
# 进入 gohttpserver 目录
cd /volume2/docker/gohttpserver
# 运行容器
docker run -d \
--restart unless-stopped \
--name gohttpserver \
-p 7050:8000 \
-v $(pwd)/data:/app/public \
codeskyblue/gohttpserver \
--upload --delete --auth-type http --auth-http username:password
usernamepassword
docker-composedocker-compose.yml
version: '3'
services:
fileserver:
image: codeskyblue/gohttpserver
container_name: gohttpserver
restart: unless-stopped
ports:
- 7050:8000
volumes:
- ./data:/app/public
command: --upload --delete --auth-type http --auth-http username:password
usernamepassword
然后执行下面的命令
# 新建文件夹 gohttpserver 和 子目录
mkdir -p /volume2/docker/gohttpserver/data
# 进入 gohttpserver 目录
cd /volume2/docker/gohttpserver
# 将 docker-compose.yml 放入当前目录
# 一键启动
docker-compose up -d
运行
http://群晖IP:7050
标准安装,也就是命令行中什么都没输入时
--uploadUpload
--delete垃圾桶New Folder
--auth-type http --auth-http username:password
功能比较简单,上一张官方的动图来演示主要的功能
.ghs.yml
root
|-- foo
| |-- .ghs.yml
| |-- 1.txt
| |-- 2.txt
| |-- 3.txt
| |-- 4.txt
| `-- world.txt
`-- bar
`-- hello.txt
foo
现在假设我们要实现下面的效果:
foofoo2.txt3.txt
注意是不显示,而不是不能访问;
.ghs.yml
upload: false
delete: false
accessTables:
- regex: 2.txt
allow: false
- regex: 3.txt
allow: false
2.txt3.txt
?json=truehttp://192.168.0.197:7050/foo?json=true
格式化之后看起来比较清楚
{
"auth": {
"upload": false,
"delete": false,
"users": null,
"AccessTables": [{
"Regex": "2.txt",
"Allow": false
}, {
"Regex": "3.txt",
"Allow": false
}]
},
"files": [{
"name": "4.txt",
"path": "foo/4.txt",
"type": "file",
"size": 5,
"mtime": 1659102355340
}, {
"name": "world.txt",
"path": "foo/world.txt",
"type": "file",
"size": 3557,
"mtime": 1658153450866
}, {
"name": ".ghs.yml",
"path": "foo/.ghs.yml",
"type": "file",
"size": 101,
"mtime": 1659113046044
}, {
"name": "1.txt",
"path": "foo/1.txt",
"type": "file",
"size": 3557,
"mtime": 1658153450866
}]
}
http://192.168.0.197:7050/foo/2.txt
参考文档
codeskyblue/gohttpserver: The best HTTP Static File Server, write with golang+vue
地址:https://github.com/codeskyblue/gohttpserver