基于golang的开源文件服务器
GHFS(Go HTTP File Server) 是基于命令行的HTTP文件共享服务器。
软件特色
比Apache/Nginx更友好的目录列表
适配移动设备显示
可以将当前浏览目录内容打包下载
可以开启某个目录的上传权限
可以指定自定义模板来渲染页面
支持目录别名(将另一个目录挂载到某个URL路径)
使用方法
ghfs [选项]
选项列表:
-l|--listen ...
指定服务器要侦听的IP和端口,例如“:80”或“127.0.0.1:80”。
如果指定了--cert和--key,端口接受TLS连接。
如果未指定端口,则在纯HTTP模式下使用80端口,TLS模式下使用443端口。
如果值中包含“/”,则将其当作unix socket路径。
标志“-l”或“--listen”可以省略。
--listen-plain ...
与--listen类似,但强制使用非TLS模式。
--listen-tls ...
与--listen类似,但强制使用TLS模式。若未指定证书和私钥,则启动失败。
--hostname ...
指定与当前虚拟主机关联的主机名。如果值以“.”开头,则将其当作后缀,匹配该域下的所有子域名。
-r|--root
服务器的根目录。
默认为当前目录。
-a|--alias ...
设置路径别名。例如:“@/data@D:\”。
-U|--global-upload
对所有URL路径开启上传权限。
如果文件已存在,则尝试添加或递增数字后缀。
请谨慎使用。
-u|--upload ...
设置开启上传权限的URL路径。
请谨慎使用。
--upload-dir ...
与--upload类似,但指定的是文件系统路径,而不是URL路径。
-A|--global-archive
对所有URL路径开启打包下载当前目录内容的功能。
页面顶部会出现下载链接。
请确保符号链接没有循环引用。
--archive ...
对指定URL路径开启打包下载当前目录内容的功能。
--archive-dir ...
与--archive类似,但指定的是文件系统路径,而不是URL路径。
--global-cors
对所有URL路径允许CORS跨域请求。
--cors ...
对指定URL路径允许CORS跨域请求。
--cors-dir ...
对指定文件系统路径允许CORS跨域请求。
-c|--cert
指定TLS证书文件。
-k|--key
指定TLS私钥文件。
-t|--template
指定用于渲染页面的自定义模板,代替内建模板。
-S|--show ...
-SD|--show-dir ...
-SF|--show-file ...
如果指定该选项,只有匹配通配符的目录或文件(除了被hide选项隐藏的)才会显示出来。
-H|--hide ...
-HD|--hide-dir ...
-HF|--hide-file ...
如果指定该选项,匹配通配符的目录或文件不会显示出来。
-L|--access-log
访问日志。
使用“-”指定为标准输出。
设为空来禁用。
-E|--error-log
错误日志。
使用“-”指定为标准错误输出。
设为空来禁用。
默认为“-”。
--config
为当前虚拟主机指定外部配置文件。
其内容为任何其他选项,
与在命令行指定的形式相同,
用空白符分割。
外部配置的优先级低于命令行选项。
如果在命令行指定了某个选项,则其外部配置被忽略。
,,
要指定多台虚拟主机的选项,用此符号分割每台主机的选项。
可以为每台虚拟主机分别指定以上选项。
举例
在8080端口启动服务器,根目录为当前工作目录:
ghfs -l 8080
在8080端口启动服务器,根目录为E:\data:
ghfs -l 8080 -r E:\data
在默认端口启动服务器,根目录为E:\temp,并允许上传文件到E:\temp\upload:
ghfs -r E:\temp -u /upload
共享D:\data下的文件,同时把E:\doc挂载到URL路径/doc下:
ghfs -r D:\data -a @/doc@E:\doc
在8080端口启动服务器,使用HTTPS协议:
ghfs -k 私钥路径 -c 证书路径 -l 8080
隐藏“.”开头的目录和文件。提示:用引号括起通配符以避免shell展开:
ghfs -H '.*'
在命令行显示访问日志
ghfs -L -
启动2台虚拟主机:
服务器1
在80端口提供http服务
在443端口提供https服务
证书文件:E:\cert\server1.pem
私钥文件:E:\cert\server1.key
主机名:server1.example.com
根目录:E:\www\server1
服务器2
在80端口提供http服务
在443端口提供https服务
证书文件:E:\cert\server2.pem
私钥文件:E:\cert\server2.key
主机名:server2.example.com
根目录:E:\www\server2
ghfs --listen-plain 80 --listen-tls 443 -c E:\cert\server1.pem -k E:\cert\server1.key --hostname server1.example.com -r E:\www\server1 ,, --listen-plain 80 --listen-tls 443 -c E:\cert\server2.pem -k E:\cert\server2.key --hostname server2.example.com -r E:\www\server2
有空的可以折腾看看,但是目前这一的文件服务器有很多比如caddy 搭建就很简单
GHFS使用Go语言开发,以MIT许可发布。
也许我的文章解决了你的问题,如果没有那很抱歉,
真诚希望您能把本站开启广告白名单,谢谢您~
联系邮箱vpslala#foxmail.com
鄙人非专业程序員,只是一个深度网瘾者,爱好折腾网络
现在百分之九十的都开启了广告过滤,更新不易.
请我喝杯咖啡吧,是我一直更新下去不删库跑路的动力.