mirror of
https://github.com/imgproxy/imgproxy.git
synced 2025-02-12 11:46:10 +02:00
Add cache control
This commit is contained in:
parent
1ba9360599
commit
4773874fcd
@ -63,6 +63,8 @@ type config struct {
|
|||||||
ReadTimeout int
|
ReadTimeout int
|
||||||
WriteTimeout int
|
WriteTimeout int
|
||||||
|
|
||||||
|
TTL int
|
||||||
|
|
||||||
MaxSrcDimension int
|
MaxSrcDimension int
|
||||||
|
|
||||||
Quality int
|
Quality int
|
||||||
@ -78,6 +80,7 @@ var conf = config{
|
|||||||
Bind: ":8080",
|
Bind: ":8080",
|
||||||
ReadTimeout: 10,
|
ReadTimeout: 10,
|
||||||
WriteTimeout: 10,
|
WriteTimeout: 10,
|
||||||
|
TTL: 3600,
|
||||||
MaxSrcDimension: 4096,
|
MaxSrcDimension: 4096,
|
||||||
Quality: 80,
|
Quality: 80,
|
||||||
GZipCompression: 5,
|
GZipCompression: 5,
|
||||||
@ -92,6 +95,8 @@ func init() {
|
|||||||
intEnvConfig(&conf.ReadTimeout, "IMGPROXY_READ_TIMEOUT")
|
intEnvConfig(&conf.ReadTimeout, "IMGPROXY_READ_TIMEOUT")
|
||||||
intEnvConfig(&conf.WriteTimeout, "IMGPROXY_WRITE_TIMEOUT")
|
intEnvConfig(&conf.WriteTimeout, "IMGPROXY_WRITE_TIMEOUT")
|
||||||
|
|
||||||
|
intEnvConfig(&conf.TTL, "IMGPROXY_TTL")
|
||||||
|
|
||||||
intEnvConfig(&conf.MaxSrcDimension, "IMGPROXY_MAX_SRC_DIMENSION")
|
intEnvConfig(&conf.MaxSrcDimension, "IMGPROXY_MAX_SRC_DIMENSION")
|
||||||
|
|
||||||
intEnvConfig(&conf.Quality, "IMGPROXY_QUALITY")
|
intEnvConfig(&conf.Quality, "IMGPROXY_QUALITY")
|
||||||
@ -124,6 +129,10 @@ func init() {
|
|||||||
log.Fatalf("Write timeout should be greater than 0, now - %d\n", conf.WriteTimeout)
|
log.Fatalf("Write timeout should be greater than 0, now - %d\n", conf.WriteTimeout)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if conf.TTL <= 0 {
|
||||||
|
log.Fatalf("TTL should be greater than 0, now - %d\n", conf.TTL)
|
||||||
|
}
|
||||||
|
|
||||||
if conf.MaxSrcDimension <= 0 {
|
if conf.MaxSrcDimension <= 0 {
|
||||||
log.Fatalf("Max src dimension should be greater than 0, now - %d\n", conf.MaxSrcDimension)
|
log.Fatalf("Max src dimension should be greater than 0, now - %d\n", conf.MaxSrcDimension)
|
||||||
}
|
}
|
||||||
|
@ -93,6 +93,8 @@ func logResponse(status int, msg string) {
|
|||||||
func respondWithImage(r *http.Request, rw http.ResponseWriter, data []byte, imgURL string, po processingOptions, startTime time.Time) {
|
func respondWithImage(r *http.Request, rw http.ResponseWriter, data []byte, imgURL string, po processingOptions, startTime time.Time) {
|
||||||
gzipped := strings.Contains(r.Header.Get("Accept-Encoding"), "gzip") && conf.GZipCompression > 0
|
gzipped := strings.Contains(r.Header.Get("Accept-Encoding"), "gzip") && conf.GZipCompression > 0
|
||||||
|
|
||||||
|
rw.Header().Set("Expires", time.Now().Add(time.Second*time.Duration(conf.TTL)).Format(http.TimeFormat))
|
||||||
|
rw.Header().Set("Cache-Control", fmt.Sprintf("Cache-Control: max-age=%d", conf.TTL))
|
||||||
rw.Header().Set("Content-Type", imageContentType(data))
|
rw.Header().Set("Content-Type", imageContentType(data))
|
||||||
if gzipped {
|
if gzipped {
|
||||||
rw.Header().Set("Content-Encoding", "gzip")
|
rw.Header().Set("Content-Encoding", "gzip")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user