gpt4 book ai didi

golang FileServer 设置目录

转载 作者:数据小太阳 更新时间:2023-10-29 03:19:33 24 4
gpt4 key购买 nike

我有一个带有 FileServer 函数的 Golang Shell,我希望能够更改 src 目录。这是我所拥有的:

func Server() {
wdir, _ := os.Getwd()
m := http.NewServeMux()
fs := http.FileServer(http.Dir(wdir))
m.Handle("/", http.StripPrefix("/", fs))
s := http.Server{Addr: ":8000", Handler: m}
m.HandleFunc("/shutdown", func(w http.ResponseWriter, r *http.Request) {
s.Shutdown(context.Background())
})
if err := s.ListenAndServe(); err != nil && err != http.ErrServerClosed {
log.Fatal(err)
}
log.Printf("Finished")
}

我是这样设置的,所以如果我进入shutdown,文件服务器就会关闭。但无论我从什么路径启动 Server(),路径始终保持不变。

因此,如果我从 shell cd 进入另一个文件夹并启动 Server(),我仍然会从可执行文件所在的目录中获取文件。

我想要的是,如果我从 /home/user/Downloads/shell 运行 shell,然后在 shell 中,我 cd 进入 /opt,服务器中显示的文件是/opt中的文件,而不是/home/user/Downloads/shell

中的文件

最佳答案

您可以将 FileServer path 作为标志引入,并使用它来创建 FileServer。

http.FileServer(http.Dir(path + "/opt")).

请检查标志library由 go 提供。

在终端中,您可以将 pwd 输入该标志值

关于golang FileServer 设置目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56132743/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com