在这里插入图片描述

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