diff --git a/pkg/utils/file/file.go b/pkg/utils/file/file.go index dac408e..20460ed 100644 --- a/pkg/utils/file/file.go +++ b/pkg/utils/file/file.go @@ -524,3 +524,26 @@ func DirSizeB(path string) (int64, error) { }) return size, err } + +func MoveFile(sourcePath, destPath string) error { + inputFile, err := os.Open(sourcePath) + if err != nil { + return fmt.Errorf("Couldn't open source file: %s", err) + } + outputFile, err := os.Create(destPath) + if err != nil { + inputFile.Close() + return fmt.Errorf("Couldn't open dest file: %s", err) + } + defer outputFile.Close() + _, err = io.Copy(outputFile, inputFile) + inputFile.Close() + if err != nil { + return fmt.Errorf("Writing to output file failed: %s", err) + } + err = os.Remove(sourcePath) + if err != nil { + return fmt.Errorf("Failed removing original file: %s", err) + } + return nil +} diff --git a/pkg/utils/jwt/jwt_helper.go b/pkg/utils/jwt/jwt_helper.go index 1fa1b66..068ac66 100644 --- a/pkg/utils/jwt/jwt_helper.go +++ b/pkg/utils/jwt/jwt_helper.go @@ -2,7 +2,7 @@ * @Author: LinkLeong link@icewhale.com * @Date: 2022-06-17 14:01:25 * @LastEditors: LinkLeong - * @LastEditTime: 2022-06-24 10:13:52 + * @LastEditTime: 2022-07-04 16:26:22 * @FilePath: /CasaOS/pkg/utils/jwt/jwt_helper.go * @Description: * @Website: https://www.casaos.io @@ -11,12 +11,10 @@ package jwt import ( - "fmt" "net/http" "github.com/IceWhaleTech/CasaOS/model" "github.com/IceWhaleTech/CasaOS/pkg/utils/common_err" - loger2 "github.com/IceWhaleTech/CasaOS/pkg/utils/loger" "github.com/gin-gonic/gin" ) @@ -109,7 +107,7 @@ func GetToken(username, pwd string) string { if err == nil { return token } else { - loger2.NewOLoger().Fatal(fmt.Sprintf("Get Token Fail: %V", err)) + //loger2.NewOLoger().Fatal(fmt.Sprintf("Get Token Fail: %V", err)) return "" } } diff --git a/pkg/utils/loger/log_old.go b/pkg/utils/loger/log_old.go deleted file mode 100644 index 876a323..0000000 --- a/pkg/utils/loger/log_old.go +++ /dev/null @@ -1,109 +0,0 @@ -package loger - -import ( - "fmt" - "log" - "os" - "path/filepath" - "runtime" - - "github.com/IceWhaleTech/CasaOS/pkg/config" - file2 "github.com/IceWhaleTech/CasaOS/pkg/utils/file" -) - -//定义一个int的别名 -type Level int - -type OLog interface { - Debug(v ...interface{}) - Info(v ...interface{}) - Warn(v ...interface{}) - Error(v ...interface{}) - Fatal(v ...interface{}) - Path() string -} - -type oLog struct { -} - -var ( - F *os.File - DefaultPrefix = "" - DefaultCallerDepth = 2 - logger *log.Logger - logPrefix = "" - levelFlags = []string{"DEBUG", "INFO", "WARN", "ERROR", "FATAL"} -) - -//iota在const关键字出现时将被重置为0(const内部的第一行之前),const中每新增一行常量声明将使iota计数一次(iota可理解为const语句块中的行索引)。 -const ( - DEBUG Level = iota - INFO - WARN - ERROR - FATAL -) - -//日志初始化 -func LogSetupOld() { - var err error - filePath := fmt.Sprintf("%s", config.AppInfo.LogPath) - fileName := fmt.Sprintf("%s.%s", - config.AppInfo.LogSaveName, - config.AppInfo.LogFileExt, - ) - F, err = file2.MustOpen(fileName, filePath) - if err != nil { - log.Fatalf("logging.Setup err: %v", err) - } - - logger = log.New(F, DefaultPrefix, log.LstdFlags) - -} -func (o *oLog) Path() string { - filePath := fmt.Sprintf("%s", config.AppInfo.LogPath) - fileName := fmt.Sprintf("%s.%s", - config.AppInfo.LogSaveName, - config.AppInfo.LogFileExt, - ) - return filePath + fileName -} -func (o *oLog) Debug(v ...interface{}) { - setPrefix(DEBUG) - logger.Println(v) -} - -func (o *oLog) Info(v ...interface{}) { - setPrefix(INFO) - logger.Println(v) -} - -func (o *oLog) Warn(v ...interface{}) { - setPrefix(WARN) - logger.Println(v) -} - -func (o *oLog) Error(v ...interface{}) { - setPrefix(ERROR) - logger.Println(v) -} - -func (o *oLog) Fatal(v ...interface{}) { - setPrefix(FATAL) - logger.Println(v) -} - -func setPrefix(level Level) { - _, file, line, ok := runtime.Caller(DefaultCallerDepth) - if ok { - logPrefix = fmt.Sprintf("[%s][%s:%d]", levelFlags[level], filepath.Base(file), line) - } else { - logPrefix = fmt.Sprintf("[%s]", levelFlags[level]) - } - - logger.SetPrefix(logPrefix) -} - -func NewOLoger() OLog { - return &oLog{} -} diff --git a/route/v1/file.go b/route/v1/file.go index ffc55ef..9733fbf 100644 --- a/route/v1/file.go +++ b/route/v1/file.go @@ -518,7 +518,6 @@ func PostOperateFileOrDir(c *gin.Context) { uid := uuid.NewV4().String() service.FileQueue.Store(uid, list) service.OpStrArr = append(service.OpStrArr, uid) - if len(service.OpStrArr) == 1 { go service.ExecOpFile() go service.CheckFileStatus() diff --git a/service/file.go b/service/file.go index 9b14b70..af2490a 100644 --- a/service/file.go +++ b/service/file.go @@ -2,7 +2,7 @@ * @Author: LinkLeong link@icewhale.com * @Date: 2021-12-20 14:15:46 * @LastEditors: LinkLeong - * @LastEditTime: 2022-06-16 16:47:46 + * @LastEditTime: 2022-07-04 16:18:23 * @FilePath: /CasaOS/service/file.go * @Description: * @Website: https://www.casaos.io @@ -101,11 +101,15 @@ func FileOperate(k string) { os.RemoveAll(temp.To + "/" + lastPath) } } - err := os.Rename(v.From, temp.To+"/"+lastPath) if err != nil { - loger.Debug("file move error", zap.Any("err", err)) - continue + loger.Error("file move error", zap.Any("err", err)) + err = file.MoveFile(v.From, temp.To+"/"+lastPath) + if err != nil { + loger.Error("MoveFile error", zap.Any("err", err)) + continue + } + } } else if temp.Type == "copy" { err := file.CopyDir(v.From, temp.To, temp.Style)