diff --git a/agent/app/repo/task.go b/agent/app/repo/task.go
index 5f9f291d0..716a12539 100644
--- a/agent/app/repo/task.go
+++ b/agent/app/repo/task.go
@@ -21,6 +21,7 @@ type ITaskRepo interface {
UpdateRunningTaskToFailed() error
CountExecutingTask() (int64, error)
Delete(opts ...DBOption) error
+ DeleteAll() error
WithByID(id string) DBOption
WithResourceID(id uint) DBOption
@@ -118,3 +119,7 @@ func (u TaskRepo) Delete(opts ...DBOption) error {
}
return db.Delete(&model.Task{}).Error
}
+
+func (u TaskRepo) DeleteAll() error {
+ return global.TaskDB.Where("1 = 1").Delete(&model.Task{}).Error
+}
diff --git a/agent/app/service/backup.go b/agent/app/service/backup.go
index e17e0622a..653205595 100644
--- a/agent/app/service/backup.go
+++ b/agent/app/service/backup.go
@@ -247,7 +247,7 @@ func (u *BackupService) Update(req dto.BackupOperate) error {
}
if newBackup.Type == constant.OneDrive || newBackup.Type == constant.GoogleDrive {
- if err := loadRefreshTokenByCode(&backup); err != nil {
+ if err := loadRefreshTokenByCode(&newBackup); err != nil {
return err
}
}
diff --git a/agent/app/service/device_clean.go b/agent/app/service/device_clean.go
index 736856b6d..7678f99c3 100644
--- a/agent/app/service/device_clean.go
+++ b/agent/app/service/device_clean.go
@@ -244,7 +244,7 @@ func (u *DeviceService) Clean(req []dto.Clean) {
continue
}
for _, file := range files {
- if file.Name() == "1Panel.log" || file.IsDir() {
+ if file.Name() == "1Panel-Core.log" || file.Name() == "1Panel.log" || file.IsDir() {
continue
}
dropFileOrDir(path.Join(global.Dir.BaseDir, logPath, file.Name()))
@@ -253,10 +253,24 @@ func (u *DeviceService) Clean(req []dto.Clean) {
dropFileOrDir(path.Join(global.Dir.BaseDir, logPath, item.Name))
}
case "task_log":
- pathItem := path.Join(global.Dir.BaseDir, logPath, item.Name)
- dropFileOrDir(pathItem)
- if len(item.Name) != 0 {
- _ = taskRepo.Delete(repo.WithByType(item.Name))
+ if len(item.Name) == 0 {
+ files, _ := os.ReadDir(path.Join(global.Dir.BaseDir, logPath))
+ if len(files) == 0 {
+ continue
+ }
+ for _, file := range files {
+ if file.Name() == "ssl" || !file.IsDir() {
+ continue
+ }
+ dropFileOrDir(path.Join(global.Dir.BaseDir, logPath, file.Name()))
+ }
+ _ = taskRepo.DeleteAll()
+ } else {
+ pathItem := path.Join(global.Dir.BaseDir, logPath, item.Name)
+ dropFileOrDir(pathItem)
+ if len(item.Name) != 0 {
+ _ = taskRepo.Delete(repo.WithByType(item.Name))
+ }
}
case "images":
dropImages()
@@ -326,7 +340,7 @@ func systemClean(taskItem *task.Task) error {
if logFiles[i].IsDir() {
continue
}
- if logFiles[i].Name() != "1Panel.log" {
+ if logFiles[i].Name() != "1Panel.log" && logFiles[i].Name() != "1Panel-Core.log" {
dropWithTask(path.Join(logPath, logFiles[i].Name()), taskItem, &size, &fileCount)
}
}
@@ -591,7 +605,10 @@ func loadTreeWithAllFile(isCheck bool, originalPath, treeType, pathItem string,
return lists
}
for _, file := range files {
- if treeType == "system_log" && (file.Name() == "1Panel.log" || file.IsDir()) {
+ if treeType == "upload" && (file.Name() == "theme" && file.IsDir()) {
+ continue
+ }
+ if treeType == "system_log" && (file.Name() == "1Panel-Core.log" || file.Name() == "1Panel.log" || file.IsDir()) {
continue
}
if (treeType == "upload" || treeType == "download") && file.IsDir() && (file.Name() == "app" || file.Name() == "database" || file.Name() == "website" || file.Name() == "directory") {
diff --git a/agent/app/service/snapshot_recover.go b/agent/app/service/snapshot_recover.go
index 398caac0b..506fd0d8d 100644
--- a/agent/app/service/snapshot_recover.go
+++ b/agent/app/service/snapshot_recover.go
@@ -247,10 +247,12 @@ func backupBeforeRecover(name string, itemHelper *snapRecoverHelper) error {
if err != nil {
return err
}
- err = itemHelper.FileOp.CopyFile("/etc/docker/daemon.json", baseDir)
- itemHelper.Task.LogWithStatus(i18n.GetWithName("SnapCopy", "/etc/docker/daemon.json"), err)
- if err != nil {
- return err
+ if itemHelper.FileOp.Stat("/etc/docker/daemon.json") {
+ err = itemHelper.FileOp.CopyFile("/etc/docker/daemon.json", baseDir)
+ itemHelper.Task.LogWithStatus(i18n.GetWithName("SnapCopy", "/etc/docker/daemon.json"), err)
+ if err != nil {
+ return err
+ }
}
return nil
}
diff --git a/core/app/service/backup.go b/core/app/service/backup.go
index 2cc130316..aa3ab9952 100644
--- a/core/app/service/backup.go
+++ b/core/app/service/backup.go
@@ -211,7 +211,7 @@ func (u *BackupService) Update(req dto.BackupOperate) error {
newBackup.Credential = string(itemCredential)
if newBackup.Type == constant.OneDrive || newBackup.Type == constant.GoogleDrive {
- if err := u.loadRefreshTokenByCode(&backup); err != nil {
+ if err := u.loadRefreshTokenByCode(&newBackup); err != nil {
return err
}
}
diff --git a/core/log/writer.go b/core/log/writer.go
index 3f0d1abca..38c62d6bb 100644
--- a/core/log/writer.go
+++ b/core/log/writer.go
@@ -1,7 +1,6 @@
package log
import (
- "github.com/1Panel-dev/1Panel/core/constant"
"log"
"os"
"path"
@@ -12,6 +11,8 @@ import (
"time"
"unsafe"
+ "github.com/1Panel-dev/1Panel/core/constant"
+
"github.com/1Panel-dev/1Panel/core/global"
)
@@ -85,7 +86,7 @@ func NewWriterFromConfig(c *Config) (RollingWriter, error) {
return nil, err
}
filepath := FilePath(c)
- file, err := os.OpenFile(filepath, os.O_RDWR|os.O_CREATE|os.O_APPEND, constant.DirPerm)
+ file, err := os.OpenFile(filepath, os.O_RDWR|os.O_CREATE|os.O_APPEND, constant.FilePerm)
if err != nil {
return nil, err
}
diff --git a/frontend/src/views/ai/model/index.vue b/frontend/src/views/ai/model/index.vue
index 299ebe646..b212507b8 100644
--- a/frontend/src/views/ai/model/index.vue
+++ b/frontend/src/views/ai/model/index.vue
@@ -175,7 +175,7 @@
-
+
diff --git a/frontend/src/views/setting/backup-account/operate/index.vue b/frontend/src/views/setting/backup-account/operate/index.vue
index 0017f224a..c9a9554fa 100644
--- a/frontend/src/views/setting/backup-account/operate/index.vue
+++ b/frontend/src/views/setting/backup-account/operate/index.vue
@@ -570,8 +570,10 @@ const changeType = async () => {
switch (dialogData.value.rowData!.type) {
case 'COS':
case 'OSS':
- case 'S3':
dialogData.value.rowData.varsJson['scType'] = 'Standard';
+ break;
+ case 'S3':
+ dialogData.value.rowData.varsJson['scType'] = 'STANDARD';
dialogData.value.rowData.varsJson['mode'] = 'virtual hosted';
break;
case 'KODO':
diff --git a/frontend/src/views/toolbox/clean/index.vue b/frontend/src/views/toolbox/clean/index.vue
index 204e572db..5e347e818 100644
--- a/frontend/src/views/toolbox/clean/index.vue
+++ b/frontend/src/views/toolbox/clean/index.vue
@@ -641,6 +641,7 @@ function load18n(label: string) {
case 'Container':
case 'App':
case 'System':
+ case 'Website':
return i18n.global.t('menu.' + label.toLowerCase());
case 'RuntimeExtension':
return i18n.global.t('website.runtime');