Allow file server to handle windows filesystems

This commit is contained in:
Joel Speed
2020-07-05 10:21:05 +01:00
parent e1c3e938cc
commit fa8e1ee033
+11 -1
View File
@@ -1,6 +1,10 @@
package upstream
import "net/http"
import (
"net/http"
"runtime"
"strings"
)
const fileScheme = "file"
@@ -15,6 +19,12 @@ func newFileServer(id, path, fileSystemPath string) http.Handler {
// newFileServerForPath creates a http.Handler to serve files from the filesystem
func newFileServerForPath(path string, filesystemPath string) http.Handler {
// Windows fileSSystemPath will be be prefixed with `/`, eg`/C:/...,
// if they were parsed by url.Parse`
if runtime.GOOS == "windows" {
filesystemPath = strings.TrimPrefix(filesystemPath, "/")
}
return http.StripPrefix(path, http.FileServer(http.Dir(filesystemPath)))
}