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

golang文件服務(wù)器的兩種方式(可以訪問任何目錄)

 更新時間:2020年04月26日 16:18:36   作者:lxsky  
這篇文章主要介紹了golang文件服務(wù)器的兩種方式,可以訪問任何目錄,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

一、方法1:

主要用到的方法是http包的FileServer,參數(shù)很簡單,就是要路由的文件夾的路徑。

package main

import (
  "fmt"
  "net/http"
)

func main() {
  http.Handle("/", http.FileServer(http.Dir("./")))

  e := http.ListenAndServe(":8080", nil)
  fmt.Println(e)
}

上面例子的路由只能把根目錄也就是“/”目錄映射出來,例如你寫成”http.Handle("/files", http.FileServer(http.Dir("./")))“,就無法把通過訪問”/files“把當(dāng)前路徑下的文件映射出來。于是就有了http包的StripPrefix方法。

二、方法2:

實現(xiàn)訪問任意文件夾下面的文件。

package main

import (
  "fmt"
  "net/http"
)

func main() {
  mux := http.NewServeMux()
  mux.Handle("/", http.StripPrefix("/", http.FileServer(http.Dir("/"))))
  mux.Handle("/c/", http.StripPrefix("/c/", http.FileServer(http.Dir("c:"))))
  mux.Handle("/d/", http.StripPrefix("/d/", http.FileServer(http.Dir("d:"))))
  mux.Handle("/e/", http.StripPrefix("/e/", http.FileServer(http.Dir("e:"))))
  if err := http.ListenAndServe(":3008", mux); err != nil {
    log.Fatal(err)
  }
}

這里生成了一個ServeMux,與文件服務(wù)器無關(guān),可以先不用關(guān)注。用這種方式,就可以把任意文件夾下的文件路由出來了。

ps:golang實現(xiàn)的文件服務(wù)器

最近在學(xué)習(xí)golang,使用golang實現(xiàn)了一個最簡單的文件服務(wù)器,程序只有簡單的十多行代碼,可以編譯成windows, linux, mac多平臺可執(zhí)行文件。

源碼

package main

import (
 "fmt"
 "net/http"
 "os"
 "path/filepath"
)

func main() {
 p, _ := filepath.Abs(filepath.Dir(os.Args[0]))
 http.Handle("/", http.FileServer(http.Dir(p)))
 err := http.ListenAndServe(":8088", nil)
 if err != nil {
 fmt.Println(err)
 }
}

源碼解釋

os.Args[0]獲取的是執(zhí)行程序時的第一個參數(shù),默認(rèn)第一個參數(shù)是程序所在的目錄
filepath.Abs(filepath.Dir(os.Args[0]))是獲取當(dāng)前可執(zhí)行程序所在的絕對路徑
http.Handle("/", http.FileServer(http.Dir(p)))是開啟一個文件服務(wù)器,使用當(dāng)前可執(zhí)行文件所在的路徑
http.ListenAndServe(":8088", nil)是監(jiān)聽8088端口并開啟文件服務(wù)器

編譯

要將源碼編譯成不同平臺的可執(zhí)行文件,需要使用gox工具,使用下面的命令安裝gox:

go get github.com/mitchellh/gox

執(zhí)行成功之后,使用gox命令即可自動編譯出各個平臺的可執(zhí)行文件,如果想為某個平臺單獨(dú)編譯,可以使用如下方式:

gox -os "windows linux" -arch amd64

-os參數(shù)指定了編譯平臺,-arch參數(shù)指定了處理器架構(gòu)

運(yùn)行

直接打開編譯出來的可執(zhí)行程序,即可運(yùn)行,在瀏覽器中訪問http://ip:8088即可看到可執(zhí)行文件所在的目錄下的所有文件。

到此這篇關(guān)于golang文件服務(wù)器可以訪問任何目錄的文章就介紹到這了,更多相關(guān)golang文件服務(wù)器內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Golang?websocket協(xié)議使用淺析

    Golang?websocket協(xié)議使用淺析

    這篇文章主要介紹了Golang?websocket協(xié)議的使用,WebSocket是一種新型的網(wǎng)絡(luò)通信協(xié)議,可以在Web應(yīng)用程序中實現(xiàn)雙向通信,感興趣想要詳細(xì)了解可以參考下文
    2023-05-05
  • Go基礎(chǔ)教程系列之Go接口使用詳解

    Go基礎(chǔ)教程系列之Go接口使用詳解

    這篇文章主要介紹了Go基礎(chǔ)教程系列之Go接口使用詳解,需要的朋友可以參考下
    2022-04-04
  • GoLang BoltDB數(shù)據(jù)庫詳解

    GoLang BoltDB數(shù)據(jù)庫詳解

    這篇文章主要介紹了GoLang BoltDB數(shù)據(jù)庫,boltdb是使用Go語言編寫的開源的鍵值對數(shù)據(jù)庫,boltdb存儲數(shù)據(jù)時 key和value都要求是字節(jié)數(shù)據(jù),此處需要使用到 序列化和反序列化
    2023-02-02
  • Golang泛型的使用方法詳解

    Golang泛型的使用方法詳解

    這篇文章主要介紹了Golang中泛型的使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • glow工具在命令行讀取Markdown好物分享

    glow工具在命令行讀取Markdown好物分享

    這篇文章主要為大家介紹了一款實用的命令行工具glow,這個CLI工具可以在命令行讀取Markdown,這對于碼農(nóng)來說非常友好,使用起來也非常舒爽
    2022-07-07
  • GoLand?使用自定義包的實現(xiàn)步驟

    GoLand?使用自定義包的實現(xiàn)步驟

    包是Go語言中代碼組成和代碼編譯的主要方式,本文主要介紹了GoLand?使用自定義包的實現(xiàn)步驟,具有一定的參考價值,感興趣的可以了解一下
    2024-06-06
  • 談?wù)揋o 什么時候會觸發(fā) GC問題

    談?wù)揋o 什么時候會觸發(fā) GC問題

    Go 語言作為一門新語言,在早期經(jīng)常遭到唾棄的就是在垃圾回收(下稱:GC)機(jī)制中 STW(Stop-The-World)的時間過長。下面文章就對此話題展開,感興趣的小伙伴可以參考下面文章的內(nèi)容
    2021-09-09
  • 淺析goland等待鎖問題

    淺析goland等待鎖問題

    這篇文章主要介紹了goland等待鎖問題,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2020-11-11
  • Golang線上內(nèi)存爆掉問題排查(pprof)與解決

    Golang線上內(nèi)存爆掉問題排查(pprof)與解決

    這篇文章主要介紹了Golang線上內(nèi)存爆掉問題排查(pprof)與解決,涉及到數(shù)據(jù)敏感,文中代碼是我模擬線上故障的一個情況,好在我們程序都有添加pprof監(jiān)控,于是直接通過go tool pprof分析,需要的朋友可以參考下
    2024-04-04
  • golang實現(xiàn)數(shù)組分割的示例代碼

    golang實現(xiàn)數(shù)組分割的示例代碼

    本文主要介紹了golang實現(xiàn)數(shù)組分割的示例代碼,要求把數(shù)組分割成多個正整數(shù)大小的數(shù)組,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12

最新評論