diff --git a/cmd/proxy/main.go b/cmd/proxy/main.go index 5c207da..e21783d 100644 --- a/cmd/proxy/main.go +++ b/cmd/proxy/main.go @@ -398,6 +398,16 @@ func (server *Server) streamOnline(w http.ResponseWriter, r *http.Request, mtime memoryObject.wg.Wait() + if response.ContentLength > 0 { + if memoryObject.Offset == int(response.ContentLength) && err != nil { + slog.With("length", memoryObject.Offset, "error", err, "upstreamIdx", selectedIdx).Debug("something happened during download. but response body is read as whole. so error is reset to nil") + err = nil + } + } else if err == io.EOF { + slog.With("length", memoryObject.Offset, "error", err, "upstreamIdx", selectedIdx).Debug("something happened during download. content length is not specified and error is a eof. so error is reset to nil") + err = nil + } + if err != nil { slog.With("error", err, "upstreamIdx", selectedIdx).Error("something happened during download. will not cache this response") }