基于Go语言搭建静态文件服务器的详细教程
目录
- 1、简介
- 2、安装
- 2.1 安装版
- 2.LfDdzWgjZ2 压缩版
- 3、基本操作
- 3.1 go run
- 3.2 go build
- 3.3 go install
- 3.4 go env
- 3.5 go module
- 4、文件服务器
- 4.1 filebrowser
- 4.2 gohttpserver
- 4.3 goFile
- 5、FAQ
- 5.1 go.mod 为空
- 5.2 超时
- 结语
1、简介
https://golang.google.cn/
Go语言诞生于2007年9月20日。
Go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。
Go是从2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持开发,后来还加入了Ian Lance Taylor, Russ Cox等人,并最终于2009年11月开源,在2012年早些时候发布了Go 1稳定版本。现在Go的开发已经是完全开放的,并且拥有一个活跃的社区。
语法简单 Go语言在自由度和灵活度上做了取舍,以此换来了更好的维护性和平滑的学习曲线。
部署友好 Go静态编译后的二进制文件不依赖额外的运行环境,编译速度也非常快。交叉编译 Go仅需要在编译时简单设置两个参数,就可以编译出能在其它平台上运行的程序天然并发 Go语言对于并发的支持是纯天然的,仅需一个关键字,就可以开启一个异步协程。垃圾回收 Go有着优秀的GChttp://www.devze.com性能,大部分情况下GC延时都不会超过1毫秒。丰富的标准库 从字符串处理到源码AST解析,功能强大且丰富的标准库是Go语言坚实的基础。完善的工具链 Go有着完善的开发工具链,涵盖了编译,测试,依赖管理,性能分析等方方面面。
2、安装
https://golang.google.cn/dl/
2.1 安装版
2.2 压缩版
配置环境变量:
GOPATH=E:\Test\go_project GOROOT=E:\Test\go1.23.2.Windows-amd64\go PATH += E:\Test\go1.23.2.windows-amd64\go\bin
测试是否配置成功:
go version
3、基本操作
3.1 go run
编译完成并马上运行 Go 程序。go run 只支持属于 main 包的一个或多个文件作为参数,不然是不能进行编译的。
go run main.go # or go run -n main.go
3.2 go build
编译指定的源文件、软件包和其他依赖,但是不会在编译后执行二进制文件。
go build 和 go run 在编译过程中其实是差不多的,不同之处是 go build 会生成编译好二进制文件并删掉编译过程产生的临时目录。若没有-o 指定文件名,则和当前目录名一致。go build main.go # or go build -x main.go
3.3 go install
编译并安装源文件、软件包,即把编译后的文件(可执行二进制文件、归档文件等)安装到指定的目录中。将编译后的文件(可执行二进制文件、归档文件等)安装到指定的目录中。若设置了环境变量 GOBIN ,则把二进制可执行文件移到该目录。若禁用 Go modules 则放到 G O P A T H / p k g / GOPATH/pkg/ GOPATH/pkg/GOOS_$GOARCH下。
go install -x main.go
3.4 go env
当你安装的GO的语言版本大于1.13的时候,直接使用go env -w命令就行了.
go env -w GOPROXY=https://goproxy.io,direct # Set environment variable allow bypassing the proxy for selected modules go env -w GOPRIVATE=*.corp.example.com go env -w GO111MODULE=on
使用go enphpv环境变量在不同操作系统(MAC、linux、Windows)之间交叉编译64位Go应用程序。通过设置CGO_ENABLED、GOOS和GOARCH,可以在本地构建目标平台的可执行文件,简化了部署流程,避免了将整个项目上传到服务器的需要。
Windows下编译Mac, Linux平台的64位可执行程序:
go env -w CGO_ENABLED=0 GOOS=darwin3 GOARCH=amd64 go env -w CGO_ENABLED=0 GOOS=linux GOARCH=amd64
Linux下编译Mac, Windows平台的64位可执行程序:
go env -w CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go env -w CGO_ENABLED=0 GOOS=windows GOARCH=amd64
Mac下编译Linux, Windows平台的64位可执行程序:
go env -w CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go env -w CGO_ENABLED=0 GOOS=windows GOARCH=amjavascriptd64
3.5 go module
go module是go官方自带的go依赖管理库,在1.13版本正式推荐使用。默认值为空,即go判断开不开启module的依据是看当前项目的根目录下有没有go.mod文件,当然我们也可手动更改为 on(全部开启)/off(全部不开启,不建议):
go env -w GO111MODULE=on go env -w GOPATH=D:\Golang1.19\gopath go env -w GOCACHE=D:\Golang1.19\gopath\go-build-cache
4、文件服务器
4.1 filebrowser
https://github.com/filebrowser/filebrowser
4.2 gohttpserver
https://github.com/codeskyblue/gohttpserver
输入如下编译命令:
go build
生成exe文件如下:
执行exe如下:
浏览器访问如下:
4.3 goFile
https://github.com/csznet/goFile
go build
生成exe文件如下:
浏览器访问如下:
5、FAQ
5.1 go.mod 为空
go: go.mod file not found in current directory or any parent directory. &lsquo编程客栈;go get’ is no longer supported outside a module.
答:执行如下命令即可:go mod init mod
使用go env查看配置信息:
go env
5.2 超时
换个代理即可:
go env -w GO111MODULE=on go env -w GOPROXY=https://goproxy.cn,direct
set GO111MODULE=on go env -w GOPROXY=https://goproxy.cn,direct # 设置不走 proxy 的私有仓库,多个用逗号相隔 go env -w GOPRIVATE=*.corp.example.com go get -u gorm.io/gorm
结语
以上就是基于Go语言搭建静态文件服务器的详细教程的详细内容,更多关于Go搭建静态文件服务器的资料请关注编程客栈(www.devze.com)其它相关文章!
精彩评论