优化代码

This commit is contained in:
GoEdgeLab
2022-12-05 09:57:01 +08:00
parent 8b6d0bcb61
commit 194c953364

View File

@@ -770,51 +770,58 @@ func (this *FileStorage) CleanAll() error {
var dirNameReg = regexp.MustCompile(`^[0-9a-f]{2}$`) var dirNameReg = regexp.MustCompile(`^[0-9a-f]{2}$`)
for _, rootDir := range rootDirs { for _, rootDir := range rootDirs {
var dir = rootDir + "/p" + types.String(this.policy.Id) var dir = rootDir + "/p" + types.String(this.policy.Id)
fp, err := os.Open(dir) err = func(dir string) error {
if err != nil { fp, err := os.Open(dir)
return err
}
defer func() {
_ = fp.Close()
}()
stat, err := fp.Stat()
if err != nil {
return err
}
if !stat.IsDir() {
return nil
}
// 改成待删除
subDirs, err := fp.Readdir(-1)
if err != nil {
return err
}
for _, info := range subDirs {
subDir := info.Name()
// 检查目录名
if !dirNameReg.MatchString(subDir) {
continue
}
// 修改目录名
tmpDir := dir + "/" + subDir + "-deleted"
err = os.Rename(dir+"/"+subDir, tmpDir)
if err != nil { if err != nil {
return err return err
} }
} defer func() {
_ = fp.Close()
}()
// 重新遍历待删除 stat, err := fp.Stat()
goman.New(func() {
err = this.cleanDeletedDirs(dir)
if err != nil { if err != nil {
remotelogs.Warn("CACHE", "delete '*-deleted' dirs failed: "+err.Error()) return err
} }
})
if !stat.IsDir() {
return nil
}
// 改成待删除
subDirs, err := fp.Readdir(-1)
if err != nil {
return err
}
for _, info := range subDirs {
subDir := info.Name()
// 检查目录名
if !dirNameReg.MatchString(subDir) {
continue
}
// 修改目录名
tmpDir := dir + "/" + subDir + "-deleted"
err = os.Rename(dir+"/"+subDir, tmpDir)
if err != nil {
return err
}
}
// 重新遍历待删除
goman.New(func() {
err = this.cleanDeletedDirs(dir)
if err != nil {
remotelogs.Warn("CACHE", "delete '*-deleted' dirs failed: "+err.Error())
}
})
return nil
}(dir)
if err != nil {
return err
}
} }
return nil return nil