added file checker, completation/size/digest

This commit is contained in:
2026-03-30 13:20:13 +02:00
parent 8afe71d925
commit f5227bcac9
8 changed files with 291 additions and 43 deletions
+38
View File
@@ -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