repos / pico

pico services mono repo
git clone https://github.com/picosh/pico.git

commit
894e7de
parent
9410239
author
Eric Bower
date
2025-01-25 20:35:46 -0500 EST
fix(pgs): close any open readers
2 files changed,  +7, -3
M pgs/uploader.go
+5, -2
 1@@ -236,8 +236,8 @@ func (h *UploadAssetHandler) findDenylist(bucket sst.Bucket, project *db.Project
 2 	if err != nil {
 3 		return "", fmt.Errorf("_pgs_ignore not found")
 4 	}
 5-
 6 	defer fp.Close()
 7+
 8 	buf := new(strings.Builder)
 9 	_, err = io.Copy(buf, fp)
10 	if err != nil {
11@@ -306,11 +306,14 @@ func (h *UploadAssetHandler) Write(s ssh.Session, entry *sendutils.FileEntry) (s
12 	// calculate the filsize difference between the same file already
13 	// stored and the updated file being uploaded
14 	assetFilename := shared.GetAssetFileName(entry)
15-	_, info, _ := h.Storage.GetObject(bucket, assetFilename)
16+	obj, info, _ := h.Storage.GetObject(bucket, assetFilename)
17 	var curFileSize int64
18 	if info != nil {
19 		curFileSize = info.Size
20 	}
21+	if obj != nil {
22+		defer obj.Close()
23+	}
24 
25 	denylist := getDenylist(s)
26 	if denylist == nil {
M pgs/web_asset_handler.go
+2, -1
 1@@ -85,10 +85,11 @@ func (h *ApiAssetHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
 2 			// before redirecting, this saves a hop that will just end up a 404
 3 			if !hasProtocol(fp.Filepath) && strings.HasSuffix(fp.Filepath, "/") {
 4 				next := filepath.Join(h.ProjectDir, fp.Filepath, "index.html")
 5-				_, _, err := h.Storage.GetObject(h.Bucket, next)
 6+				obj, _, err := h.Storage.GetObject(h.Bucket, next)
 7 				if err != nil {
 8 					continue
 9 				}
10+				defer obj.Close()
11 			}
12 			logger.Info(
13 				"redirecting request",