repos / pico

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

commit
6530b86
parent
b3098e1
author
Eric Bower
date
2025-01-09 13:01:06 -0500 EST
fix(storage): check for empty metadata
2 files changed,  +8, -10
M shared/storage/fs.go
+4, -5
 1@@ -3,7 +3,6 @@ package storage
 2 import (
 3 	"fmt"
 4 	"io"
 5-	"net/http"
 6 	"os"
 7 	"path/filepath"
 8 	"strings"
 9@@ -25,14 +24,14 @@ func NewStorageFS(dir string) (*StorageFS, error) {
10 
11 func (s *StorageFS) ServeObject(bucket sst.Bucket, fpath string, opts *ImgProcessOpts) (io.ReadCloser, *sst.ObjectInfo, error) {
12 	var rc io.ReadCloser
13-	info := &sst.ObjectInfo{
14-		Metadata:     make(http.Header),
15-		UserMetadata: map[string]string{},
16-	}
17+	info := &sst.ObjectInfo{}
18 	var err error
19 	mimeType := GetMimeType(fpath)
20 	if !strings.HasPrefix(mimeType, "image/") || opts == nil || os.Getenv("IMGPROXY_URL") == "" {
21 		rc, info, err = s.GetObject(bucket, fpath)
22+		if info.Metadata == nil {
23+			info.Metadata = map[string][]string{}
24+		}
25 		// StorageFS never returns a content-type.
26 		info.Metadata.Set("content-type", mimeType)
27 	} else {
M shared/storage/minio.go
+4, -5
 1@@ -3,7 +3,6 @@ package storage
 2 import (
 3 	"fmt"
 4 	"io"
 5-	"net/http"
 6 	"os"
 7 	"path/filepath"
 8 	"strings"
 9@@ -25,14 +24,14 @@ func NewStorageMinio(address, user, pass string) (*StorageMinio, error) {
10 
11 func (s *StorageMinio) ServeObject(bucket sst.Bucket, fpath string, opts *ImgProcessOpts) (io.ReadCloser, *sst.ObjectInfo, error) {
12 	var rc io.ReadCloser
13-	info := &sst.ObjectInfo{
14-		Metadata:     make(http.Header),
15-		UserMetadata: map[string]string{},
16-	}
17+	info := &sst.ObjectInfo{}
18 	var err error
19 	mimeType := GetMimeType(fpath)
20 	if !strings.HasPrefix(mimeType, "image/") || opts == nil || os.Getenv("IMGPROXY_URL") == "" {
21 		rc, info, err = s.GetObject(bucket, fpath)
22+		if info.Metadata == nil {
23+			info.Metadata = map[string][]string{}
24+		}
25 		// Minio always returns application/octet-stream which needs to be overridden.
26 		info.Metadata.Set("content-type", mimeType)
27 	} else {