added minimal image checker
This commit is contained in:
+25
-7
@@ -8,6 +8,7 @@ import (
|
||||
"io"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
|
||||
"mstore/pkg/auxuuid"
|
||||
)
|
||||
@@ -59,7 +60,6 @@ func (store *Storage) FileExists(collection, filename string) (bool, int64, erro
|
||||
func (store *Storage) GetFileReader(collection, filename string) (io.ReadCloser, error) {
|
||||
var err error
|
||||
var res io.ReadCloser
|
||||
|
||||
filename = store.makeFilepath(collection, filename)
|
||||
file, err := os.OpenFile(filename, os.O_RDONLY, 0)
|
||||
if err != nil {
|
||||
@@ -72,14 +72,12 @@ func (store *Storage) GetFileReader(collection, filename string) (io.ReadCloser,
|
||||
func (store *Storage) GetFileCheksum(collection, filename string) (string, error) {
|
||||
var err error
|
||||
var res string
|
||||
|
||||
filename = store.makeFilepath(collection, filename)
|
||||
file, err := os.OpenFile(filename, os.O_RDONLY, 0)
|
||||
if err != nil {
|
||||
return res, err
|
||||
}
|
||||
defer file.Close()
|
||||
|
||||
hasher := NewHasher()
|
||||
_, err = io.Copy(hasher.Writer(), file)
|
||||
if err != nil {
|
||||
@@ -116,7 +114,6 @@ func (store *Storage) WriteTempFile(source io.Reader) (string, int64, string, er
|
||||
return tmpName, size, csum, err
|
||||
}
|
||||
csum = hasher.Hex()
|
||||
|
||||
return tmpName, size, csum, err
|
||||
}
|
||||
|
||||
@@ -158,8 +155,29 @@ func (store *Storage) DeleteFile(collection, filename string) error {
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
// TODO: clean removing
|
||||
dirname := store.makeCollecionpath(collection)
|
||||
os.RemoveAll(dirname)
|
||||
// TODO: clean dirs removing
|
||||
return err
|
||||
}
|
||||
|
||||
func (store *Storage) ListAllFiles() ([]string, error) {
|
||||
names := make([]string, 0)
|
||||
var err error
|
||||
rootdir := store.makeCollecionpath(string(filepath.Separator))
|
||||
walker := func(filename string, fileInfo os.FileInfo, err error) error {
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if !fileInfo.Mode().IsRegular() {
|
||||
return nil
|
||||
}
|
||||
name := strings.TrimPrefix(filename, filepath.Clean(rootdir))
|
||||
name = filepath.Join(string(filepath.Separator), name)
|
||||
names = append(names, name)
|
||||
return nil
|
||||
}
|
||||
err = filepath.Walk(rootdir, walker)
|
||||
if err != nil {
|
||||
return names, err
|
||||
}
|
||||
return names, err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user