pico

created pr with 69.1 on 2025-06-08T14:58:33Z · by c8ef7d19
added 69.2 on 2025-06-08T15:26:57Z · by c8ef7d19
1: 827f272 = 1: 827f272 feat(storage): base storage fn
2: e63282c = 2: e63282c feat(prose): use storage base for prose
3: 2a52510 = 3: 2a52510 refactor(prose): use fs adapter for images
-: ------- > 4: 6ddc654 refactor: proxy headers for images
cmds
checkout latest patchset:
ssh pr.pico.sh print 69 | git am -3
checkout any patchset in a patch request:
ssh pr.pico.sh print 69.[rev] | git am -3
add changes to patch request:
git format-patch main --stdout | ssh pr.pico.sh pr add 69
+34 -0 pkg/shared/storage/base.go #
......@@ -0,0 +1,34 @@
1+package storage
2+
3+import (
4+ "fmt"
5+ "log/slog"
6+
7+ "github.com/picosh/utils"
8+)
9+
10+func GetStorageTypeFromEnv() string {
11+ return utils.GetEnv("STORAGE_ADAPTER", "minio")
12+}
13+
14+func NewStorage(logger *slog.Logger, adapter string) (StorageServe, error) {
15+ logger.Info("storage adapter", "adapter", adapter)
16+ switch adapter {
17+ case "minio":
18+ minioURL := utils.GetEnv("MINIO_URL", "")
19+ minioUser := utils.GetEnv("MINIO_ROOT_USER", "")
20+ minioPass := utils.GetEnv("MINIO_ROOT_PASSWORD", "")
21+ logger.Info("using minio storage", "url", minioURL, "user", minioUser)
22+ return NewStorageMinio(logger, minioURL, minioUser, minioPass)
23+ case "fs":
24+ fsPath := utils.GetEnv("FS_STORAGE_DIR", "/tmp/pico_storage")
25+ logger.Info("using filesystem storage", "path", fsPath)
26+ return NewStorageFS(logger, fsPath)
27+ case "memory":
28+ data := map[string]map[string]string{}
29+ logger.Info("using memory storage")
30+ return NewStorageMemory(data)
31+ default:
32+ return nil, fmt.Errorf("unsupported storage type: %s", adapter)
33+ }
34+}
Back to top