golang FileServer set directory - PullRequest
       10

golang FileServer set directory

0 голосов
/ 14 мая 2019

У меня есть оболочка Golang с функцией FileServer, которую я хочу изменить в каталоге 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, FileServer закрывается. Но независимо от того, с какого пути я запускаю Server(), путь всегда остается одним и тем же.

Так что, если из оболочки I cd в другую папку и запустить Server(), я все равно получу файлы из каталога, где находится исполняемый файл.

Я хочу, чтобы при запуске оболочки из /home/user/Downloads/shell и внутри оболочки I cd в /opt файлы, отображаемые на сервере, находились в /opt, а не в /home/user/Downloads/shell

1 Ответ

0 голосов
/ 14 мая 2019

Вы можете ввести FileServer path в качестве флага и использовать его для создания FileServer.

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

Пожалуйста, проверьте флаг library , предоставленный go.

И в терминале вы можете ввести pwd в это значение флага

...