登录
首页 >  Golang >  Go问答

设置golang文件服务器目录

来源:stackoverflow

时间:2024-03-01 12:09:27 278浏览 收藏

亲爱的编程学习爱好者,如果你点开了这篇文章,说明你对《设置golang文件服务器目录》很感兴趣。本篇文章就来给大家详细解析一下,主要介绍一下,希望所有认真读完的童鞋们,都有实质性的提高。

问题内容

我有一个带有 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 中的那些


解决方案


您可以引入文件服务器 path 作为标志并使用它来创建文件服务器。

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

请检查go提供的flag library

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

以上就是《设置golang文件服务器目录》的详细内容,更多关于的资料请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>