当前位置: 代码网 > it编程>前端脚本>Golang > 基于Go语言搭建静态文件服务器的详细教程

基于Go语言搭建静态文件服务器的详细教程

2024年11月26日 Golang 我要评论
1、简介https://golang.google.cn/go语言诞生于2007年9月20日。go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。go是从2007年末由robert

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有着优秀的gc性能,大部分情况下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 env环境变量在不同操作系统(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=amd64

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. ‘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搭建静态文件服务器的资料请关注代码网其它相关文章!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com