From 098b735c7a4e751cbe9369e8e64ca823e027730d Mon Sep 17 00:00:00 2001 From: zhengkunwang223 Date: Thu, 1 Dec 2022 17:14:39 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=BA=94=E7=94=A8=E5=A4=87=E4=BB=BD?= =?UTF-8?q?=E7=9B=AE=E5=BD=95=E4=BB=8E=E8=AE=BE=E7=BD=AE=E4=B8=AD=E8=AF=BB?= =?UTF-8?q?=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/app/service/app_utils.go | 22 +++++++++++++++++++++- backend/constant/dir.go | 2 -- backend/init/app/app.go | 4 +--- 3 files changed, 22 insertions(+), 6 deletions(-) diff --git a/backend/app/service/app_utils.go b/backend/app/service/app_utils.go index d0a7c2445..06ff64e68 100644 --- a/backend/app/service/app_utils.go +++ b/backend/app/service/app_utils.go @@ -243,8 +243,28 @@ func updateInstall(installId uint, detailId uint) error { func backupInstall(ctx context.Context, install model.AppInstall) error { var backup model.AppInstallBackup appPath := install.GetPath() - backupDir := path.Join(constant.BackupDir, install.App.Key, install.Name) + + backupAccount, err := backupRepo.Get(commonRepo.WithByType("LOCAL")) + if err != nil { + return err + } + varMap := make(map[string]interface{}) + if err := json.Unmarshal([]byte(backupAccount.Vars), &varMap); err != nil { + return err + } + dir, ok := varMap["dir"] + if !ok { + return errors.New("load local backup dir failed") + } + baseDir, ok := dir.(string) + if !ok { + return errors.New("load local backup dir failed") + } + backupDir := path.Join(baseDir, "apps", install.App.Key, install.Name) fileOp := files.NewFileOp() + if !fileOp.Stat(backupDir) { + _ = fileOp.CreateDir(backupDir, 0775) + } now := time.Now() day := now.Format("20060102150405") fileName := fmt.Sprintf("%s_%s%s", install.Name, day, ".tar.gz") diff --git a/backend/constant/dir.go b/backend/constant/dir.go index 532e35fbc..d82c1571b 100644 --- a/backend/constant/dir.go +++ b/backend/constant/dir.go @@ -10,6 +10,4 @@ var ( ResourceDir = path.Join(DefaultDataDir, "resource") AppResourceDir = path.Join(ResourceDir, "apps") AppInstallDir = path.Join(DefaultDataDir, "apps") - BackupDir = path.Join(DefaultDataDir, "backup") - AppBackupDir = path.Join(BackupDir, "apps") ) diff --git a/backend/init/app/app.go b/backend/init/app/app.go index cfdeec192..b44a5e492 100644 --- a/backend/init/app/app.go +++ b/backend/init/app/app.go @@ -13,10 +13,8 @@ func Init() { constant.ResourceDir = path.Join(constant.DefaultDataDir, "resource") constant.AppResourceDir = path.Join(constant.ResourceDir, "apps") constant.AppInstallDir = path.Join(constant.DefaultDataDir, "apps") - constant.BackupDir = path.Join(constant.DefaultDataDir, "backup") - constant.AppBackupDir = path.Join(constant.BackupDir, "apps") - dirs := []string{constant.DefaultDataDir, constant.ResourceDir, constant.AppResourceDir, constant.AppInstallDir, constant.BackupDir, constant.AppBackupDir} + dirs := []string{constant.DefaultDataDir, constant.ResourceDir, constant.AppResourceDir, constant.AppInstallDir} fileOp := files.NewFileOp() for _, dir := range dirs {