From 349a13468bd95195093956e3642ae748bd832e63 Mon Sep 17 00:00:00 2001 From: Mukhtar Akere Date: Mon, 2 Jun 2025 15:44:03 +0100 Subject: [PATCH] fix cloudflare, maybe? --- pkg/webdav/handler.go | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/pkg/webdav/handler.go b/pkg/webdav/handler.go index 923cba4..789102e 100644 --- a/pkg/webdav/handler.go +++ b/pkg/webdav/handler.go @@ -8,6 +8,7 @@ import ( "io" "mime" "net/http" + "net/url" "os" "path" "path/filepath" @@ -459,8 +460,21 @@ func (h *Handler) handleGet(w http.ResponseWriter, r *http.Request) { } file.downloadLink = link if h.cache.StreamWithRclone() { - // Redirect to the download link - http.Redirect(w, r, file.downloadLink, http.StatusTemporaryRedirect) + redirectURL := file.downloadLink + + rangeHeader := r.Header.Get("Range") + cacheBuster := fmt.Sprintf("t=%d&r=%s", time.Now().UnixNano(), url.QueryEscape(rangeHeader)) + + if strings.Contains(redirectURL, "?") { + redirectURL += "&" + cacheBuster + } else { + redirectURL += "?" + cacheBuster + } + + w.Header().Set("Cache-Control", "no-store, no-cache, must-revalidate, max-age=0") + w.Header().Set("Pragma", "no-cache") + + http.Redirect(w, r, redirectURL, http.StatusTemporaryRedirect) return } }