From 86f01825932fa76e925b3c5a5a40e401d41fa969 Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Mon, 29 Dec 2025 10:49:42 +0800 Subject: [PATCH] =?UTF-8?q?fix(s3):=20=E8=A7=A3=E5=86=B3=E7=BC=93=E5=AD=98?= =?UTF-8?q?=E6=B8=85=E7=90=86=E6=97=B6=E7=9A=84=E7=B1=BB=E5=9E=8B=E6=96=AD?= =?UTF-8?q?=E8=A8=80=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加类型检查避免非 cacheItem 类型值导致的 panic - 跳过 lock_xxx 对应的 *sync.Mutex 类型值 - 保持原有缓存过期清理逻辑不变 --- api/viid_upload.go | 1 + fs/s3_adapter.go | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/api/viid_upload.go b/api/viid_upload.go index f45ccc9..9caecae 100644 --- a/api/viid_upload.go +++ b/api/viid_upload.go @@ -4,6 +4,7 @@ import ( "ZhenTuLocalPassiveAdapter/logger" "context" "fmt" + "go.uber.org/zap" "golang.org/x/sync/errgroup" ) diff --git a/fs/s3_adapter.go b/fs/s3_adapter.go index 84c1a98..a40af2c 100644 --- a/fs/s3_adapter.go +++ b/fs/s3_adapter.go @@ -203,7 +203,11 @@ func init() { func cleanupCache() { var keysToDelete []interface{} s3Cache.Range(func(key, value interface{}) bool { - item := value.(cacheItem) + // 类型检查:跳过非 cacheItem 类型的值(例如 lock_xxx 对应的 *sync.Mutex) + item, ok := value.(cacheItem) + if !ok { + return true + } if time.Now().After(item.expires) { keysToDelete = append(keysToDelete, key) }