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 ( import (
"fmt" "fmt"
"io"
"os" "os"
"git.um-react.app/um/cli/algo/common" "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() defer mr.Close()
var crc io.Reader
cr, err := os.Open(mmkv_crc) cr, err := os.Open(mmkv_crc)
if err != nil { if err != nil {
// crc is optional // crc is optional
@@ -28,14 +30,22 @@ func LoadFromPath(path string, key string, logger *zap.Logger) (result common.QM
key = "" key = ""
} else { } else {
defer cr.Close() 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 var password []byte = nil
if key != "" { if key != "" {
password = make([]byte, 16) password = make([]byte, 16)
copy(password, []byte(key)) 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 { if err != nil {
logger.Error("LoadMMKV: failed to create reader", zap.Error(err)) logger.Error("LoadMMKV: failed to create reader", zap.Error(err))
return nil, fmt.Errorf("LoadMMKV: NewMMKVReader error: %w", err) return nil, fmt.Errorf("LoadMMKV: NewMMKVReader error: %w", err)