mirror of
https://github.com/TeaOSLab/EdgeNode.git
synced 2025-11-12 22:40:25 +08:00
优化代码
This commit is contained in:
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user