pico

created pr with 66.1 on 2025-04-18T17:16:07Z · by c8ef7d19
changed pr name to chore(pobj.fs): feature parity with minio on 2025-04-18T17:18:11Z · by c8ef7d19
added 66.2 on 2025-04-21T18:44:44Z · by c8ef7d19
1: a3f9ef2 = 1: a3f9ef2 chore: rm UserMetadata
2: ccd89b0 = 2: ccd89b0 refactor(shared): mime type pkg
3: 8621e35 = 3: 8621e35 chore(pobj.fs): provide metadata
-: ------- > 4: 831b150 chore(storage.fs): add tests
cmds
checkout latest patchset:
ssh pr.pico.sh print 66 | git am -3
checkout any patchset in a patch request:
ssh pr.pico.sh print 66.[rev] | git am -3
add changes to patch request:
git format-patch main --stdout | ssh pr.pico.sh pr add 66
+8 -1 pkg/pobj/storage/fs.go #
......@@ -5,6 +5,7 @@ import (
55 "io"
66 "io/fs"
77 "log/slog"
8+ "net/http"
89 "os"
910 "path"
1011 "path/filepath"
......@@ -12,6 +13,7 @@ import (
1213 "time"
1314
1415 "github.com/picosh/pico/pkg/send/utils"
16+ "github.com/picosh/pico/pkg/shared/mime"
1517 )
1618
1719 // https://stackoverflow.com/a/32482941
......@@ -96,7 +98,7 @@ func (s *StorageFS) DeleteBucket(bucket Bucket) error {
9698 func (s *StorageFS) GetObject(bucket Bucket, fpath string) (utils.ReadAndReaderAtCloser, *ObjectInfo, error) {
9799 objInfo := &ObjectInfo{
98100 LastModified: time.Time{},
99- Metadata: nil,
101+ Metadata: make(http.Header),
100102 }
101103
102104 dat, err := os.Open(filepath.Join(bucket.Path, fpath))
......@@ -111,6 +113,7 @@ func (s *StorageFS) GetObject(bucket Bucket, fpath string) (utils.ReadAndReaderA
111113
112114 objInfo.Size = info.Size()
113115 objInfo.LastModified = info.ModTime()
116+ objInfo.Metadata.Set("content-type", mime.GetMimeType(fpath))
114117 return dat, objInfo, nil
115118 }
116119
......@@ -147,6 +150,10 @@ func (s *StorageFS) DeleteObject(bucket Bucket, fpath string) error {
147150 return err
148151 }
149152
153+ // try to remove dir if it is empty
154+ dir := filepath.Dir(loc)
155+ _ = os.Remove(dir)
156+
150157 return nil
151158 }
152159
Back to top