开源本地文件服务器,基于golang的开源文件服务器

GHFS是一款基于Golang的轻量级HTTP文件服务器,提供友好的目录列表,支持移动设备显示,目录打包下载,上传权限控制等功能。用户可以通过命令行参数配置监听端口、根目录、CORS、TLS等选项,甚至可以自定义模板和开启不同URL的上传及打包下载权限。这款工具适合开发者快速分享本地文件或进行简单文件服务搭建。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基于golang的开源文件服务器

GHFS(Go HTTP File Server) 是基于命令行的HTTP文件共享服务器。

软件特色

比Apache/Nginx更友好的目录列表

适配移动设备显示

可以将当前浏览目录内容打包下载

可以开启某个目录的上传权限

可以指定自定义模板来渲染页面

支持目录别名(将另一个目录挂载到某个URL路径)

使用方法

2c7559156a5dc7a74ab60dfd43b90e12.gif

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

鄙人非专业程序員,只是一个深度网瘾者,爱好折腾网络

现在百分之九十的都开启了广告过滤,更新不易.

请我喝杯咖啡吧,是我一直更新下去不删库跑路的动力.

c333d061e2b2cd67d5b7173b0484bf26.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值