Set far-future caching header on blob responses (#1571)

1 view
Skip to first unread message

nor...@perkeep.org

unread,
Mar 12, 2022, 11:17:41 AM3/12/22
to camlistor...@googlegroups.com


https://github.com/perkeep/perkeep/commit/079b8815d91268572e838b5f4cf65da746b6dc9f

commit 079b8815d91268572e838b5f4cf65da746b6dc9f
Author: Surma <su...@surma.dev>
Date: Sat Mar 12 16:17:16 2022 +0000

Set far-future caching header on blob responses (#1571)

diff --git a/pkg/blobserver/gethandler/get.go b/pkg/blobserver/gethandler/get.go
index 862382d..fccf660 100644
--- a/pkg/blobserver/gethandler/get.go
+++ b/pkg/blobserver/gethandler/get.go
@@ -33,6 +33,10 @@ import (
"go4.org/readerutil"
)

+const (
+ HTTP_CACHE_DURATION = 10 * 356 * 24 * time.Hour
+)
+
var getPattern = regexp.MustCompile(`/camli/` + blob.Pattern + `$`)

// Handler is the HTTP handler for serving GET requests of blobs.
@@ -78,6 +82,7 @@ func ServeBlobRef(rw http.ResponseWriter, req *http.Request, blobRef blob.Ref, f
}
defer rc.Close()
rw.Header().Set("Content-Type", "application/octet-stream")
+ rw.Header().Set("Cache-Control", fmt.Sprintf("max-age=%d, immutable", int(HTTP_CACHE_DURATION.Seconds())))

var content io.ReadSeeker = readerutil.NewFakeSeeker(rc, int64(size))
rangeHeader := req.Header.Get("Range") != ""
Reply all
Reply to author
Forward
0 new messages