From df01bfefe55816855994ed052d51fc83be814723 Mon Sep 17 00:00:00 2001 From: TossPig Date: Tue, 13 Dec 2022 17:56:06 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D`jsonFileHotReloadStorage`?= =?UTF-8?q?=E5=9C=A8=E6=96=87=E4=BB=B6=E5=B7=B2=E5=AD=98=E5=9C=A8=E7=9A=84?= =?UTF-8?q?=E6=83=85=E5=86=B5=E4=B8=8B=EF=BC=8C=E6=B2=A1=E6=9C=89=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E5=88=B0=E6=96=87=E4=BB=B6=E5=86=99=E5=85=A5=E6=9D=83?= =?UTF-8?q?=E9=99=90=20(#163)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 修复`jsonFileHotReloadStorage`在文件已存在的情况下,没有获取到文件写入权限 * fix 截获Seek的错误 --- stroage.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) 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) }