diff --git a/internal/routes/download.go b/internal/routes/download.go index c03d048..11566b1 100644 --- a/internal/routes/download.go +++ b/internal/routes/download.go @@ -104,9 +104,18 @@ func getPublicUrl(r *http.Request, subpath string) string { Host: r.Host, Path: path.Join("public", subpath), } - newURL.Scheme = "http" - if r.TLS != nil { - newURL.Scheme = "https" - } + newURL.Scheme = determineScheme(r) return newURL.String() } + +func determineScheme(r *http.Request) string { + if proto := r.Header.Get("X-Forwarded-Proto"); proto != "" { + return proto + } + + if r.TLS != nil { + return "https" + } + + return "http" +}