diff --git a/server/common/proxy.go b/server/common/proxy.go index 2ad8b473..69c285f7 100644 --- a/server/common/proxy.go +++ b/server/common/proxy.go @@ -58,6 +58,9 @@ func Proxy(w http.ResponseWriter, r *http.Request, link *model.Link, file model. } else { w.WriteHeader(link.Status) } + if r.Method == http.MethodHead { + return nil + } _, err = io.Copy(w, link.Data) if err != nil { return err @@ -95,6 +98,9 @@ func Proxy(w http.ResponseWriter, r *http.Request, link *model.Link, file model. } else { w.WriteHeader(link.Status) } + if r.Method == http.MethodHead { + return nil + } return link.Writer(w) } else { req, err := http.NewRequest(r.Method, link.URL, nil) @@ -132,6 +138,9 @@ func Proxy(w http.ResponseWriter, r *http.Request, link *model.Link, file model. log.Debugln(msg) return errors.New(msg) } + if r.Method == http.MethodHead { + return nil + } _, err = io.Copy(w, res.Body) if err != nil { return err diff --git a/server/router.go b/server/router.go index c6de5611..f36097a3 100644 --- a/server/router.go +++ b/server/router.go @@ -39,6 +39,8 @@ func Init(e *gin.Engine) { g.GET("/d/*path", middlewares.Down, handles.Down) g.GET("/p/*path", middlewares.Down, handles.Proxy) + g.HEAD("/d/*path", middlewares.Down, handles.Down) + g.HEAD("/p/*path", middlewares.Down, handles.Proxy) api := g.Group("/api") auth := api.Group("", middlewares.Auth)