mirror of
				https://github.com/TeaOSLab/EdgeNode.git
				synced 2025-11-04 16:00: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