fix: enhance LoadFromPath function to include file size and optional CRC handling for improved error logging

This commit is contained in:
鲁树人
2026-10-19 23:35:04 +09:00
parent 89cd9d13c3
commit 06e97975d8
+11 -1
View File
@@ -2,6 +2,7 @@ package mmkv
import (
"fmt"
"io"
"os"
"git.um-react.app/um/cli/algo/common"
@@ -21,6 +22,7 @@ func LoadFromPath(path string, key string, logger *zap.Logger) (result common.QM
}
defer mr.Close()
var crc io.Reader
cr, err := os.Open(mmkv_crc)
if err != nil {
// crc is optional
@@ -28,14 +30,22 @@ func LoadFromPath(path string, key string, logger *zap.Logger) (result common.QM
key = ""
} else {
defer cr.Close()
crc = cr
}
stat, err := os.Stat(path)
if err != nil {
logger.Error("LoadMMKV: Could not stat mmkv file", zap.Error(err))
return nil, fmt.Errorf("LoadMMKV: stat error: %w", err)
}
mmkv_size := stat.Size()
var password []byte = nil
if key != "" {
password = make([]byte, 16)
copy(password, []byte(key))
}
mmkv, err := go_mmkv.NewMMKVReader(mr, password, cr)
mmkv, err := go_mmkv.NewMMKVReader(mr, mmkv_size, password, crc)
if err != nil {
logger.Error("LoadMMKV: failed to create reader", zap.Error(err))
return nil, fmt.Errorf("LoadMMKV: NewMMKVReader error: %w", err)