diff --git a/stroage.go b/stroage.go index 399c45a..f61dc19 100644 --- a/stroage.go +++ b/stroage.go @@ -33,7 +33,7 @@ type jsonFileHotReloadStorage struct { func (j *jsonFileHotReloadStorage) Read(p []byte) (n int, err error) { if j.file == nil { - j.file, err = os.Open(j.filename) + j.file, err = os.OpenFile(j.filename, os.O_RDWR, 0600) if os.IsNotExist(err) { return 0, ErrInvalidStorage } @@ -51,6 +51,12 @@ func (j *jsonFileHotReloadStorage) Write(p []byte) (n int, err error) { return 0, err } } + if _, err = j.file.Seek(0, io.SeekStart); err != nil { + return + } + if err = j.file.Truncate(0); err != nil { + return + } return j.file.Write(p) }