开发者

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

开发者 https://www.devze.com 2024-10-29 14:17 出处:网络 作者: 爱看书的小沐
目录1、简介2、安装2.1 安装版2.LfDdzWgjZ2 压缩版3、基本操作3.1 go run3.2 go build3.3 go install3.4 go env3.5 go module4、文件服务器4.1 filebrowser4.2 gohttpserver4.3 goFile5、FAQ5.1 go.mod 为空5.2 超时
目录
  • 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/

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

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

    2.1 安装版

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

    2.2 压缩版

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

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

    配置环境变量:

    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语言搭建静态文件服务器的详细教程

    测试是否配置成功:

    go version
    

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

    3、基本操作

    3.1 go run

    编译完成并马上运行 Go 程序。go run 只支持属于 main 包的一个或多个文件作为参数,不然是不能进行编译的。

    go run main.go
    # or
    go run -n main.go 
    

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

    3.2 go build

    编译指定的源文件、软件包和其他依赖,但是不会在编译后执行二进制文件。

    go build 和 go run 在编译过程中其实是差不多的,不同之处是 go build 会生成编译好二进制文件并删掉编译过程产生的临时目录。若没有-o 指定文件名,则和当前目录名一致。

    go build main.go
    # or
    go build -x main.go
    

    基于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
    

    基于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

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

    4.2 gohttpserver

    https://github.com/codeskyblue/gohttpserver

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

    输入如下编译命令:

    go build
    

    生成exe文件如下:

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

    执行exe如下:

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

    浏览器访问如下:

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

    4.3 goFile

    https://github.com/csznet/goFile

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

    go build
    

    生成exe文件如下:

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

    浏览器访问如下:

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

    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
    

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

    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)其它相关文章!

    0

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    关注公众号