欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基于Go語(yǔ)言搭建靜態(tài)文件服務(wù)器的詳細(xì)教程

 更新時(shí)間:2024年10月21日 09:33:39   作者:愛(ài)看書(shū)的小沐  
Go 是一個(gè)開(kāi)源的編程語(yǔ)言,它能讓構(gòu)造簡(jiǎn)單、可靠且高效的軟件變得容易,本文給大家介紹了基于Go語(yǔ)言搭建靜態(tài)文件服務(wù)器的詳細(xì)教程,文中通過(guò)圖文和代碼講解的非常詳細(xì),需要的朋友可以參考下

1、簡(jiǎn)介

https://golang.google.cn/

Go語(yǔ)言誕生于2007年9月20日。

Go 是一個(gè)開(kāi)源的編程語(yǔ)言,它能讓構(gòu)造簡(jiǎn)單、可靠且高效的軟件變得容易。

Go是從2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持開(kāi)發(fā),后來(lái)還加入了Ian Lance Taylor, Russ Cox等人,并最終于2009年11月開(kāi)源,在2012年早些時(shí)候發(fā)布了Go 1穩(wěn)定版本?,F(xiàn)在Go的開(kāi)發(fā)已經(jīng)是完全開(kāi)放的,并且擁有一個(gè)活躍的社區(qū)。

語(yǔ)法簡(jiǎn)單 Go語(yǔ)言在自由度和靈活度上做了取舍,以此換來(lái)了更好的維護(hù)性和平滑的學(xué)習(xí)曲線。
部署友好 Go靜態(tài)編譯后的二進(jìn)制文件不依賴額外的運(yùn)行環(huán)境,編譯速度也非常快。
交叉編譯 Go僅需要在編譯時(shí)簡(jiǎn)單設(shè)置兩個(gè)參數(shù),就可以編譯出能在其它平臺(tái)上運(yùn)行的程序
天然并發(fā) Go語(yǔ)言對(duì)于并發(fā)的支持是純天然的,僅需一個(gè)關(guān)鍵字,就可以開(kāi)啟一個(gè)異步協(xié)程。
垃圾回收 Go有著優(yōu)秀的GC性能,大部分情況下GC延時(shí)都不會(huì)超過(guò)1毫秒。
豐富的標(biāo)準(zhǔn)庫(kù) 從字符串處理到源碼AST解析,功能強(qiáng)大且豐富的標(biāo)準(zhǔn)庫(kù)是Go語(yǔ)言堅(jiān)實(shí)的基礎(chǔ)。
完善的工具鏈 Go有著完善的開(kāi)發(fā)工具鏈,涵蓋了編譯,測(cè)試,依賴管理,性能分析等方方面面。

2、安裝

https://golang.google.cn/dl/

在這里插入圖片描述

在這里插入圖片描述

2.1 安裝版

在這里插入圖片描述

2.2 壓縮版

在這里插入圖片描述

在這里插入圖片描述

配置環(huán)境變量:

GOPATH=E:\Test\go_project
GOROOT=E:\Test\go1.23.2.windows-amd64\go
PATH += E:\Test\go1.23.2.windows-amd64\go\bin

在這里插入圖片描述

測(cè)試是否配置成功:

go version

在這里插入圖片描述

3、基本操作

3.1 go run

編譯完成并馬上運(yùn)行 Go 程序。go run 只支持屬于 main 包的一個(gè)或多個(gè)文件作為參數(shù),不然是不能進(jìn)行編譯的。

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

在這里插入圖片描述

3.2 go build

編譯指定的源文件、軟件包和其他依賴,但是不會(huì)在編譯后執(zhí)行二進(jìn)制文件。
go build 和 go run 在編譯過(guò)程中其實(shí)是差不多的,不同之處是 go build 會(huì)生成編譯好二進(jìn)制文件并刪掉編譯過(guò)程產(chǎn)生的臨時(shí)目錄。若沒(méi)有-o 指定文件名,則和當(dāng)前目錄名一致。

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

在這里插入圖片描述

3.3 go install

編譯并安裝源文件、軟件包,即把編譯后的文件(可執(zhí)行二進(jìn)制文件、歸檔文件等)安裝到指定的目錄中。將編譯后的文件(可執(zhí)行二進(jìn)制文件、歸檔文件等)安裝到指定的目錄中。若設(shè)置了環(huán)境變量 GOBIN ,則把二進(jìn)制可執(zhí)行文件移到該目錄。若禁用 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

當(dāng)你安裝的GO的語(yǔ)言版本大于1.13的時(shí)候,直接使用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環(huán)境變量在不同操作系統(tǒng)(Mac、Linux、Windows)之間交叉編譯64位Go應(yīng)用程序。通過(guò)設(shè)置CGO_ENABLED、GOOS和GOARCH,可以在本地構(gòu)建目標(biāo)平臺(tái)的可執(zhí)行文件,簡(jiǎn)化了部署流程,避免了將整個(gè)項(xiàng)目上傳到服務(wù)器的需要。

Windows下編譯Mac, Linux平臺(tái)的64位可執(zhí)行程序:

go env -w CGO_ENABLED=0 GOOS=darwin3 GOARCH=amd64 
go env -w CGO_ENABLED=0 GOOS=linux GOARCH=amd64 

Linux下編譯Mac, Windows平臺(tái)的64位可執(zhí)行程序:

go env -w CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 
go env -w CGO_ENABLED=0 GOOS=windows GOARCH=amd64 

Mac下編譯Linux, Windows平臺(tái)的64位可執(zhí)行程序:

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依賴管理庫(kù),在1.13版本正式推薦使用。默認(rèn)值為空,即go判斷開(kāi)不開(kāi)啟module的依據(jù)是看當(dāng)前項(xiàng)目的根目錄下有沒(méi)有g(shù)o.mod文件,當(dāng)然我們也可手動(dòng)更改為 on(全部開(kāi)啟)/off(全部不開(kāi)啟,不建議):

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、文件服務(wù)器

4.1 filebrowser

https://github.com/filebrowser/filebrowser

在這里插入圖片描述

4.2 gohttpserver

https://github.com/codeskyblue/gohttpserver

在這里插入圖片描述

輸入如下編譯命令:

go build

生成exe文件如下:

在這里插入圖片描述

執(zhí)行exe如下:

在這里插入圖片描述

瀏覽器訪問(wèn)如下:

在這里插入圖片描述

4.3 goFile

https://github.com/csznet/goFile

在這里插入圖片描述

go build

生成exe文件如下:

在這里插入圖片描述

瀏覽器訪問(wèn)如下:

在這里插入圖片描述

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.
答:執(zhí)行如下命令即可:

go mod init mod

使用go env查看配置信息:

go env

在這里插入圖片描述

5.2 超時(shí)

換個(gè)代理即可:

go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct
set GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct
# 設(shè)置不走 proxy 的私有倉(cāng)庫(kù),多個(gè)用逗號(hào)相隔
go env -w GOPRIVATE=*.corp.example.com
go get -u gorm.io/gorm

結(jié)語(yǔ)

以上就是基于Go語(yǔ)言搭建靜態(tài)文件服務(wù)器的詳細(xì)教程的詳細(xì)內(nèi)容,更多關(guān)于Go搭建靜態(tài)文件服務(wù)器的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • golang?基于?mysql?簡(jiǎn)單實(shí)現(xiàn)分布式讀寫鎖

    golang?基于?mysql?簡(jiǎn)單實(shí)現(xiàn)分布式讀寫鎖

    這篇文章主要介紹了golang?基于mysql簡(jiǎn)單實(shí)現(xiàn)分布式讀寫鎖,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-09-09
  • 一文教你如何快速學(xué)會(huì)Go的切片和數(shù)組數(shù)據(jù)類型

    一文教你如何快速學(xué)會(huì)Go的切片和數(shù)組數(shù)據(jù)類型

    數(shù)組是屬于同一類型的元素的集合。切片是數(shù)組頂部的方便、靈活且功能強(qiáng)大的包裝器。本文就來(lái)和大家聊聊Go中切片和數(shù)組的使用,需要的可以參考一下
    2023-03-03
  • Go構(gòu)建器模式構(gòu)建復(fù)雜對(duì)象方法實(shí)例

    Go構(gòu)建器模式構(gòu)建復(fù)雜對(duì)象方法實(shí)例

    本文介紹了構(gòu)建器模式,如何通過(guò)構(gòu)建器對(duì)象構(gòu)建復(fù)雜業(yè)務(wù)對(duì)象的方法實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • Go語(yǔ)言中兩個(gè)比較流行的緩存庫(kù)使用示例

    Go語(yǔ)言中兩個(gè)比較流行的緩存庫(kù)使用示例

    緩存是計(jì)算機(jī)科學(xué)中的一個(gè)重要概念,設(shè)想某個(gè)組件需要訪問(wèn)外部資源,它向外部源請(qǐng)求資源,接收并使用資源,這些步驟都需要花費(fèi)時(shí)間,下面這篇文章主要給大家介紹了關(guān)于Go語(yǔ)言中兩個(gè)比較流行的緩存庫(kù)使用的相關(guān)資料,需要的朋友可以參考下
    2024-04-04
  • Golang在Mac、Linux、Windows下如何交叉編譯的實(shí)現(xiàn)

    Golang在Mac、Linux、Windows下如何交叉編譯的實(shí)現(xiàn)

    這篇文章主要介紹了Golang在Mac、Linux、Windows下如何交叉編譯的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • Golang 操作TSV文件的實(shí)戰(zhàn)示例

    Golang 操作TSV文件的實(shí)戰(zhàn)示例

    本文主要介紹了Golang 操作TSV文件的實(shí)戰(zhàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • 在?Go?語(yǔ)言中使用?regexp?包處理正則表達(dá)式的操作

    在?Go?語(yǔ)言中使用?regexp?包處理正則表達(dá)式的操作

    正則表達(dá)式是處理字符串時(shí)一個(gè)非常強(qiáng)大的工具,而?Go?語(yǔ)言的?regexp?包提供了簡(jiǎn)單而強(qiáng)大的接口來(lái)使用正則表達(dá)式,本文將介紹如何在?Go?中使用?regexp?包來(lái)編譯和執(zhí)行正則表達(dá)式,以及如何從文本中匹配和提取信息,感興趣的朋友一起看看吧
    2023-12-12
  • Go json omitempty如何實(shí)現(xiàn)可選屬性

    Go json omitempty如何實(shí)現(xiàn)可選屬性

    在Go語(yǔ)言中,使用`omitempty`可以幫助我們?cè)谶M(jìn)行JSON序列化和反序列化時(shí),忽略結(jié)構(gòu)體中的零值或空值,本文介紹了如何通過(guò)將字段類型改為指針類型,并在結(jié)構(gòu)體的JSON標(biāo)簽中添加`omitempty`來(lái)實(shí)現(xiàn)這一功能,例如,將float32修改為*float32
    2024-09-09
  • golang flag簡(jiǎn)單用法

    golang flag簡(jiǎn)單用法

    本篇文章介紹了golang flag包的一個(gè)簡(jiǎn)單的用法,希望通過(guò)一個(gè)簡(jiǎn)單的實(shí)例,能讓大家了解它的用法,從中獲得啟發(fā)
    2018-09-09
  • golang使用http client發(fā)起get和post請(qǐng)求示例

    golang使用http client發(fā)起get和post請(qǐng)求示例

    這篇文章主要介紹了golang使用http client發(fā)起get和post請(qǐng)求示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02

最新評(píng)論