add X-Content-SHA1 when fetching dist
This commit is contained in:
@@ -35,7 +35,30 @@ func (_ upstreamServer) ServeHTTP(w http.ResponseWriter, req *http.Request) {
|
|||||||
return
|
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) {
|
func distFetch(path ...string) (outPath string, err error) {
|
||||||
|
|||||||
Reference in New Issue
Block a user