first draft of file storage

This commit is contained in:
2026-01-28 15:33:19 +02:00
parent d647854e98
commit d6496a427b
7 changed files with 394 additions and 158 deletions
+31 -2
View File
@@ -25,7 +25,20 @@ func NewStorage(basepath string) *Storage {
return res
}
func (store *Storage) LinkFile(tmpname, collection, filename string) error {
func (store *Storage) GetFileReader(collection, filename string) (io.ReadCloser, error) {
var err error
var res io.ReadCloser
filename = filepath.Join(store.basepath, collection, filename)
file, err := os.OpenFile(filename, os.O_RDONLY, 0)
if err != nil {
return res, err
}
res = file
return res, err
}
func (store *Storage) HardlinkFile(tmpname, collection, filename string) error {
var err error
dirname := filepath.Join(store.basepath, collection)
err = os.MkdirAll(dirname, 0750)
@@ -34,7 +47,7 @@ func (store *Storage) LinkFile(tmpname, collection, filename string) error {
}
filename = filepath.Join(store.basepath, collection, filename)
os.Remove(filename)
os.Remove(filename) // TODO
err = os.Link(tmpname, filename)
if err != nil {
@@ -74,3 +87,19 @@ func (store *Storage) WriteTempFile(source io.Reader) (string, int64, string, er
return tmppath, size, digest, err
}
func (store *Storage) DeleteFile(collection, filename string) error {
var err error
filename = filepath.Join(store.basepath, collection, filename)
err = os.Remove(filename)
if err != nil {
return err
}
dirname := filepath.Join(store.basepath, collection)
err = os.RemoveAll(dirname)
if err != nil {
return err
}
return err
}