add X-Content-SHA1 when fetching dist

This commit is contained in:
Mikaël Cluseau
2026-07-17 13:10:07 +02:00
parent e58e8f758e
commit 88f97496be
+24 -1
View File
@@ -35,7 +35,30 @@ func (_ upstreamServer) ServeHTTP(w http.ResponseWriter, req *http.Request) {
return
}
http.ServeFile(w, req, outPath)
f, err := os.Open(outPath)
if err != nil {
w.WriteHeader(http.StatusInternalServerError)
w.Write([]byte(err.Error() + "\n"))
return
}
defer f.Close()
h := sha1.New()
if _, err := io.Copy(h, f); err != nil {
w.WriteHeader(http.StatusInternalServerError)
w.Write([]byte(err.Error() + "\n"))
return
}
sha1Hex := hex.EncodeToString(h.Sum(nil))
w.Header().Set("X-Content-SHA1", sha1Hex)
if _, err := f.Seek(0, 0); err != nil {
w.WriteHeader(http.StatusInternalServerError)
w.Write([]byte(err.Error() + "\n"))
return
}
http.ServeContent(w, req, outPath, time.Time{}, f)
}
func distFetch(path ...string) (outPath string, err error) {