first draft of file storage
This commit is contained in:
+31
-2
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user