repos / pico

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

commit
c0208b3
parent
d51ab87
author
Eric Bower
date
2026-03-28 21:28:51 -0400 EDT
chore(storage): cleanup
6 files changed,  +18, -15
M pkg/apps/pgs/cli.go
+1, -1
1@@ -48,7 +48,7 @@ type Cmd struct {
2 	User    *db.User
3 	Session shared.CmdSession
4 	Log     *slog.Logger
5-	Store   storage.ObjectStorage
6+	Store   storage.StorageServe
7 	Dbpool  pgsdb.PgsDB
8 	Write   bool
9 	Width   int
M pkg/apps/pgs/gen_dir_listing.go
+1, -1
1@@ -92,7 +92,7 @@ func toDisplayEntries(entries []os.FileInfo) []dirEntryDisplay {
2 	return displayEntries
3 }
4 
5-func shouldGenerateListing(st storage.ObjectStorage, bucket storage.Bucket, projectDir string, path string) bool {
6+func shouldGenerateListing(st storage.StorageServe, bucket storage.Bucket, projectDir string, path string) bool {
7 	dirPath := projectDir + path
8 	if path == "/" {
9 		dirPath = projectDir + "/"
M pkg/storage/fs.go
+2, -2
 1@@ -43,8 +43,8 @@ type StorageFS struct {
 2 	Logger *slog.Logger
 3 }
 4 
 5-var _ ObjectStorage = &StorageFS{}
 6-var _ ObjectStorage = (*StorageFS)(nil)
 7+var _ StorageServe = &StorageFS{}
 8+var _ StorageServe = (*StorageFS)(nil)
 9 
10 func NewStorageFS(logger *slog.Logger, dir string) (*StorageFS, error) {
11 	return &StorageFS{Logger: logger, Dir: dir}, nil
M pkg/storage/handler.go
+1, -1
1@@ -39,7 +39,7 @@ type FileData struct {
2 
3 type Config struct {
4 	Logger     *slog.Logger
5-	Storage    ObjectStorage
6+	Storage    StorageServe
7 	AssetNames AssetNames
8 }
9 
M pkg/storage/memory.go
+2, -2
 1@@ -19,8 +19,8 @@ type StorageMemory struct {
 2 	mu      sync.RWMutex
 3 }
 4 
 5-var _ ObjectStorage = &StorageMemory{}
 6-var _ ObjectStorage = (*StorageMemory)(nil)
 7+var _ StorageServe = &StorageMemory{}
 8+var _ StorageServe = (*StorageMemory)(nil)
 9 
10 func NewStorageMemory(st map[string]map[string]string) (*StorageMemory, error) {
11 	return &StorageMemory{
M pkg/storage/storage.go
+11, -8
 1@@ -15,27 +15,30 @@ type Bucket struct {
 2 	Root string
 3 }
 4 
 5-type ObjectStorage interface {
 6+type ObjectInfo struct {
 7+	Size         int64
 8+	LastModified time.Time
 9+	ETag         string
10+	Metadata     http.Header
11+}
12+
13+type BucketStorage interface {
14 	GetBucket(name string) (Bucket, error)
15 	GetBucketQuota(bucket Bucket) (uint64, error)
16 	UpsertBucket(name string) (Bucket, error)
17 	ListBuckets() ([]string, error)
18 	DeleteBucket(bucket Bucket) error
19+}
20 
21+type ObjectStorage interface {
22 	GetObject(bucket Bucket, fpath string) (utils.ReadAndReaderAtCloser, *ObjectInfo, error)
23 	PutObject(bucket Bucket, fpath string, contents io.Reader, entry *utils.FileEntry) (string, int64, error)
24 	DeleteObject(bucket Bucket, fpath string) error
25 	ListObjects(bucket Bucket, dir string, recursive bool) ([]os.FileInfo, error)
26 }
27 
28-type ObjectInfo struct {
29-	Size         int64
30-	LastModified time.Time
31-	ETag         string
32-	Metadata     http.Header
33-}
34-
35 type StorageServe interface {
36+	BucketStorage
37 	ObjectStorage
38 	ServeObject(r *http.Request, bucket Bucket, fpath string, opts *ImgProcessOpts) (io.ReadCloser, *ObjectInfo, error)
39 }