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 {