diff --git a/internal/caches/open_file_cache.go b/internal/caches/open_file_cache.go index 3b0be13..7a8a88a 100644 --- a/internal/caches/open_file_cache.go +++ b/internal/caches/open_file_cache.go @@ -64,6 +64,8 @@ func NewOpenFileCache(maxCount int) (*OpenFileCache, error) { } func (this *OpenFileCache) Get(filename string) *OpenFile { + filename = filepath.Clean(filename) + this.locker.RLock() pool, ok := this.poolMap[filename] this.locker.RUnlock() @@ -85,6 +87,8 @@ func (this *OpenFileCache) Get(filename string) *OpenFile { } func (this *OpenFileCache) Put(filename string, file *OpenFile) { + filename = filepath.Clean(filename) + if file.size > maxOpenFileSize { return } @@ -119,6 +123,8 @@ func (this *OpenFileCache) Put(filename string, file *OpenFile) { } func (this *OpenFileCache) Close(filename string) { + filename = filepath.Clean(filename) + this.locker.Lock() pool, ok := this.poolMap[filename] diff --git a/internal/caches/storage_file.go b/internal/caches/storage_file.go index 6a1e9c7..36f0e16 100644 --- a/internal/caches/storage_file.go +++ b/internal/caches/storage_file.go @@ -622,6 +622,11 @@ func (this *FileStorage) openWriter(key string, expiredAt int64, status int, hea return nil, fmt.Errorf("%w (003)", ErrFileIsWriting) } + // 关闭 + if openFileCache != nil { + openFileCache.Close(cachePath) + } + var metaBodySize int64 = -1 var metaHeaderSize = -1 if isNewCreated {