added file checker, completation/size/digest
This commit is contained in:
@@ -38,6 +38,24 @@ func (store *Storage) makeFilesubdir(collection, filename string) string {
|
||||
return filepath.Join(store.basepath, fileSubdir)
|
||||
}
|
||||
|
||||
func (store *Storage) FileExists(collection, filename string) (bool, int64, error) {
|
||||
var err error
|
||||
var exists bool
|
||||
var size int64
|
||||
filename = store.makeFilepath(collection, filename)
|
||||
stat, err := os.Stat(filename)
|
||||
if os.IsNotExist(err) {
|
||||
err = nil
|
||||
return exists, size, err
|
||||
}
|
||||
if err != nil {
|
||||
return exists, size, err
|
||||
}
|
||||
size = stat.Size()
|
||||
exists = true
|
||||
return exists, size, err
|
||||
}
|
||||
|
||||
func (store *Storage) GetFileReader(collection, filename string) (io.ReadCloser, error) {
|
||||
var err error
|
||||
var res io.ReadCloser
|
||||
@@ -51,6 +69,26 @@ func (store *Storage) GetFileReader(collection, filename string) (io.ReadCloser,
|
||||
return res, err
|
||||
}
|
||||
|
||||
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 {
|
||||
return res, err
|
||||
}
|
||||
res = hasher.Hex()
|
||||
return res, err
|
||||
}
|
||||
|
||||
func (store *Storage) WriteTempFile(source io.Reader) (string, int64, string, error) {
|
||||
var err error
|
||||
var size int64
|
||||
|
||||
Reference in New Issue
Block a user