Allow file server to handle windows filesystems

This commit is contained in:
Joel Speed 2020-05-27 23:58:57 +01:00
parent e1c3e938cc
commit fa8e1ee033
No known key found for this signature in database
GPG Key ID: 6E80578D6751DEFB
1 changed files with 11 additions and 1 deletions

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)))
}