mirror of
https://git.um-react.app/um/cli.git
synced 2026-10-20 21:43:02 +00:00
fix: enhance LoadFromPath function to include file size and optional CRC handling for improved error logging
This commit is contained in:
+11
-1
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user