Revert "Try this to speed up /uploads/, we might have to revert it if it breaks the caches."
This reverts commit 5d4ea4d2e0
.
This commit is contained in:
parent
5d4ea4d2e0
commit
32f3bc453f
|
@ -539,6 +539,32 @@ func (w gzipResponseWriter) Write(b []byte) (int, error) {
|
||||||
return w.Writer.Write(b)
|
return w.Writer.Write(b)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type WriterIntercept struct {
|
||||||
|
w http.ResponseWriter
|
||||||
|
code int
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewWriterIntercept(w http.ResponseWriter) *WriterIntercept {
|
||||||
|
return &WriterIntercept{w:w,code:200}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (writ *WriterIntercept) Header() http.Header {
|
||||||
|
return writ.w.Header()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (writ *WriterIntercept) Write(pieces []byte) (int, error) {
|
||||||
|
return writ.w.Write(pieces)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (writ *WriterIntercept) WriteHeader(code int) {
|
||||||
|
writ.w.WriteHeader(code)
|
||||||
|
writ.code = code
|
||||||
|
}
|
||||||
|
|
||||||
|
func (writ *WriterIntercept) GetCode() int {
|
||||||
|
return writ.code
|
||||||
|
}
|
||||||
|
|
||||||
type GenRouter struct {
|
type GenRouter struct {
|
||||||
UploadHandler func(http.ResponseWriter, *http.Request)
|
UploadHandler func(http.ResponseWriter, *http.Request)
|
||||||
extraRoutes map[string]func(http.ResponseWriter, *http.Request, common.User) common.RouteError
|
extraRoutes map[string]func(http.ResponseWriter, *http.Request, common.User) common.RouteError
|
||||||
|
@ -555,9 +581,12 @@ func NewGenRouter(uploads http.Handler) (*GenRouter, error) {
|
||||||
|
|
||||||
return &GenRouter{
|
return &GenRouter{
|
||||||
UploadHandler: func(w http.ResponseWriter, req *http.Request) {
|
UploadHandler: func(w http.ResponseWriter, req *http.Request) {
|
||||||
|
writ := NewWriterIntercept(w)
|
||||||
|
http.StripPrefix("/uploads/",uploads).ServeHTTP(writ,req)
|
||||||
|
if writ.GetCode() == 200 {
|
||||||
w.Header().Set("Cache-Control", "max-age=" + strconv.Itoa(int(common.Day)))
|
w.Header().Set("Cache-Control", "max-age=" + strconv.Itoa(int(common.Day)))
|
||||||
w.Header().Set("Vary", "Accept-Encoding")
|
w.Header().Set("Vary", "Accept-Encoding")
|
||||||
http.StripPrefix("/uploads/",uploads).ServeHTTP(w,req)
|
}
|
||||||
},
|
},
|
||||||
extraRoutes: make(map[string]func(http.ResponseWriter, *http.Request, common.User) common.RouteError),
|
extraRoutes: make(map[string]func(http.ResponseWriter, *http.Request, common.User) common.RouteError),
|
||||||
requestLogger: log.New(f, "", log.LstdFlags),
|
requestLogger: log.New(f, "", log.LstdFlags),
|
||||||
|
|
|
@ -310,6 +310,32 @@ func (w gzipResponseWriter) Write(b []byte) (int, error) {
|
||||||
return w.Writer.Write(b)
|
return w.Writer.Write(b)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type WriterIntercept struct {
|
||||||
|
w http.ResponseWriter
|
||||||
|
code int
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewWriterIntercept(w http.ResponseWriter) *WriterIntercept {
|
||||||
|
return &WriterIntercept{w:w,code:200}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (writ *WriterIntercept) Header() http.Header {
|
||||||
|
return writ.w.Header()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (writ *WriterIntercept) Write(pieces []byte) (int, error) {
|
||||||
|
return writ.w.Write(pieces)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (writ *WriterIntercept) WriteHeader(code int) {
|
||||||
|
writ.w.WriteHeader(code)
|
||||||
|
writ.code = code
|
||||||
|
}
|
||||||
|
|
||||||
|
func (writ *WriterIntercept) GetCode() int {
|
||||||
|
return writ.code
|
||||||
|
}
|
||||||
|
|
||||||
type GenRouter struct {
|
type GenRouter struct {
|
||||||
UploadHandler func(http.ResponseWriter, *http.Request)
|
UploadHandler func(http.ResponseWriter, *http.Request)
|
||||||
extraRoutes map[string]func(http.ResponseWriter, *http.Request, common.User) common.RouteError
|
extraRoutes map[string]func(http.ResponseWriter, *http.Request, common.User) common.RouteError
|
||||||
|
@ -326,9 +352,12 @@ func NewGenRouter(uploads http.Handler) (*GenRouter, error) {
|
||||||
|
|
||||||
return &GenRouter{
|
return &GenRouter{
|
||||||
UploadHandler: func(w http.ResponseWriter, req *http.Request) {
|
UploadHandler: func(w http.ResponseWriter, req *http.Request) {
|
||||||
|
writ := NewWriterIntercept(w)
|
||||||
|
http.StripPrefix("/uploads/",uploads).ServeHTTP(writ,req)
|
||||||
|
if writ.GetCode() == 200 {
|
||||||
w.Header().Set("Cache-Control", "max-age=" + strconv.Itoa(int(common.Day)))
|
w.Header().Set("Cache-Control", "max-age=" + strconv.Itoa(int(common.Day)))
|
||||||
w.Header().Set("Vary", "Accept-Encoding")
|
w.Header().Set("Vary", "Accept-Encoding")
|
||||||
http.StripPrefix("/uploads/",uploads).ServeHTTP(w,req)
|
}
|
||||||
},
|
},
|
||||||
extraRoutes: make(map[string]func(http.ResponseWriter, *http.Request, common.User) common.RouteError),
|
extraRoutes: make(map[string]func(http.ResponseWriter, *http.Request, common.User) common.RouteError),
|
||||||
requestLogger: log.New(f, "", log.LstdFlags),
|
requestLogger: log.New(f, "", log.LstdFlags),
|
||||||
|
|
Loading…
Reference in New Issue