mirror of
https://github.com/1Panel-dev/1Panel.git
synced 2025-10-06 05:24:33 +08:00
fix: Fix the problem that the snapshot file download path is incorrect (#8216)
This commit is contained in:
parent
7c8e233bb1
commit
49d42061be
14 changed files with 194 additions and 11 deletions
|
@ -342,7 +342,7 @@ func (u *BackupService) checkBackupConn(backup *model.BackupAccount) (bool, erro
|
|||
if _, err := client.Upload(fileItem, targetPath); err != nil {
|
||||
return false, err
|
||||
}
|
||||
_, _ = client.Delete(path.Join(backup.BackupPath, "test"))
|
||||
_, _ = client.Delete(path.Join(backup.BackupPath, "test/1panel"))
|
||||
return true, nil
|
||||
}
|
||||
|
||||
|
|
|
@ -191,13 +191,15 @@ func handleDownloadSnapshot(itemHelper *snapRecoverHelper, snap model.Snapshot,
|
|||
|
||||
account, client, err := NewBackupClientWithID(snap.DownloadAccountID)
|
||||
itemHelper.Task.LogWithStatus(i18n.GetWithName("RecoverDownloadAccount", fmt.Sprintf("%s - %s", account.Type, account.Name)), err)
|
||||
pathItem := account.BackupPath
|
||||
if account.BackupPath != "/" {
|
||||
pathItem = strings.TrimPrefix(account.BackupPath, "/")
|
||||
targetPath := ""
|
||||
if len(account.BackupPath) != 0 {
|
||||
targetPath = path.Join(account.BackupPath, fmt.Sprintf("system_snapshot/%s.tar.gz", snap.Name))
|
||||
} else {
|
||||
targetPath = fmt.Sprintf("system_snapshot/%s.tar.gz", snap.Name)
|
||||
}
|
||||
filePath := fmt.Sprintf("%s/%s.tar.gz", targetDir, snap.Name)
|
||||
_ = os.RemoveAll(filePath)
|
||||
_, err = client.Download(path.Join(pathItem, fmt.Sprintf("system_snapshot/%s.tar.gz", snap.Name)), filePath)
|
||||
_, err = client.Download(targetPath, filePath)
|
||||
itemHelper.Task.LogWithStatus(i18n.GetMsgByKey("Download"), err)
|
||||
return err
|
||||
}
|
||||
|
|
|
@ -28,7 +28,10 @@ func initGlobalData() {
|
|||
if err := settingRepo.Update("SystemStatus", "Free"); err != nil {
|
||||
global.LOG.Fatalf("init service before start failed, err: %v", err)
|
||||
}
|
||||
_, _ = xpack.LoadNodeInfo(false)
|
||||
node, _ := xpack.LoadNodeInfo(false)
|
||||
if len(node.Version) != 0 {
|
||||
_ = settingRepo.Update("SystemVersion", node.Version)
|
||||
}
|
||||
global.CONF.Base.EncryptKey, _ = settingRepo.GetValueByKey("EncryptKey")
|
||||
}
|
||||
|
||||
|
|
|
@ -362,7 +362,7 @@ func (u *BackupService) checkBackupConn(backup *model.BackupAccount) (bool, erro
|
|||
if _, err := client.Upload(fileItem, targetPath); err != nil {
|
||||
return false, err
|
||||
}
|
||||
_, _ = client.Delete(path.Join(backup.BackupPath, "test"))
|
||||
_, _ = client.Delete(path.Join(backup.BackupPath, "test/1panel"))
|
||||
return true, nil
|
||||
}
|
||||
|
||||
|
|
|
@ -1771,6 +1771,7 @@ const message = {
|
|||
taskLog: 'Retain Task Log',
|
||||
monitorData: 'Retain Monitoring Data',
|
||||
selectAllImage: 'Backup All Application Images',
|
||||
logLabel: 'Log',
|
||||
agentLabel: 'Node Configuration',
|
||||
appDataLabel: 'Application Data',
|
||||
appImage: 'Application Image',
|
||||
|
|
|
@ -1667,6 +1667,41 @@ const message = {
|
|||
'バックアップファイルは現在のバックアップリストにありません。ファイルディレクトリからダウンロードして、バックアップ用にインポートしてみてください。',
|
||||
|
||||
snapshot: 'スナップショット|スナップショット',
|
||||
noAppData: '選択可能なシステムアプリはありません',
|
||||
noBackupData: '選択可能なバックアップデータはありません',
|
||||
stepBaseData: '基本データ',
|
||||
stepAppData: 'システムアプリ',
|
||||
stepPanelData: 'システムデータ',
|
||||
stepBackupData: 'バックアップデータ',
|
||||
stepOtherData: 'その他のデータ',
|
||||
operationLog: '操作ログを保持',
|
||||
loginLog: 'アクセスログを保持',
|
||||
systemLog: 'システムログを保持',
|
||||
taskLog: 'タスクログを保持',
|
||||
monitorData: '監視データを保持',
|
||||
selectAllImage: 'すべてのアプリイメージをバックアップ',
|
||||
logLabel: 'ログ',
|
||||
agentLabel: 'ノード設定',
|
||||
appDataLabel: 'アプリデータ',
|
||||
appImage: 'アプリイメージ',
|
||||
appBackup: 'アプリバックアップ',
|
||||
backupLabel: 'バックアップディレクトリ',
|
||||
confLabel: '設定ファイル',
|
||||
dockerLabel: 'コンテナ',
|
||||
taskLabel: 'スケジュールタスク',
|
||||
resourceLabel: 'アプリリソースディレクトリ',
|
||||
runtimeLabel: '実行環境',
|
||||
appLabel: 'アプリ',
|
||||
databaseLabel: 'データベース',
|
||||
snapshotLabel: 'スナップショットファイル',
|
||||
websiteLabel: 'ウェブサイト',
|
||||
directoryLabel: 'ディレクトリ',
|
||||
appStoreLabel: 'アプリストア',
|
||||
shellLabel: 'スクリプト',
|
||||
tmpLabel: '一時ディレクトリ',
|
||||
sslLabel: '証明書ディレクトリ',
|
||||
reCreate: 'スナップショットの作成に失敗しました',
|
||||
reRollback: 'スナップショットのロールバックに失敗しました',
|
||||
deleteHelper:
|
||||
'サードパーティのバックアップアカウントにあるものを含むすべてのスナップショットファイルが削除されます。続けたいですか?',
|
||||
status: 'スナップショットステータス',
|
||||
|
|
|
@ -1643,6 +1643,41 @@ const message = {
|
|||
backupJump: '현재 백업 목록에 없는 파일입니다. 파일 디렉토리에서 다운로드하여 백업에 가져오기를 시도하세요.',
|
||||
|
||||
snapshot: '스냅샷 | 스냅샷들',
|
||||
noAppData: '선택할 수 있는 시스템 앱이 없습니다',
|
||||
noBackupData: '선택할 수 있는 백업 데이터가 없습니다',
|
||||
stepBaseData: '기본 데이터',
|
||||
stepAppData: '시스템 앱',
|
||||
stepPanelData: '시스템 데이터',
|
||||
stepBackupData: '백업 데이터',
|
||||
stepOtherData: '기타 데이터',
|
||||
operationLog: '작업 로그 유지',
|
||||
loginLog: '접속 로그 유지',
|
||||
systemLog: '시스템 로그 유지',
|
||||
taskLog: '작업 로그 유지',
|
||||
monitorData: '모니터링 데이터 유지',
|
||||
selectAllImage: '모든 앱 이미지를 백업',
|
||||
logLabel: '로그',
|
||||
agentLabel: '노드 설정',
|
||||
appDataLabel: '앱 데이터',
|
||||
appImage: '앱 이미지',
|
||||
appBackup: '앱 백업',
|
||||
backupLabel: '백업 디렉토리',
|
||||
confLabel: '설정 파일',
|
||||
dockerLabel: '컨테이너',
|
||||
taskLabel: '예약 작업',
|
||||
resourceLabel: '앱 리소스 디렉토리',
|
||||
runtimeLabel: '실행 환경',
|
||||
appLabel: '앱',
|
||||
databaseLabel: '데이터베이스',
|
||||
snapshotLabel: '스냅샷 파일',
|
||||
websiteLabel: '웹사이트',
|
||||
directoryLabel: '디렉토리',
|
||||
appStoreLabel: '앱 스토어',
|
||||
shellLabel: '스크립트',
|
||||
tmpLabel: '임시 디렉토리',
|
||||
sslLabel: '인증서 디렉토리',
|
||||
reCreate: '스냅샷 생성 실패',
|
||||
reRollback: '스냅샷 롤백 실패',
|
||||
deleteHelper: '타사 백업 계정에 포함된 스냅샷 파일을 포함하여 모든 스냅샷 파일이 삭제됩니다. 계속하시겠습니까?',
|
||||
status: '스냅샷 상태',
|
||||
ignoreRule: '무시 규칙',
|
||||
|
|
|
@ -1725,6 +1725,41 @@ const message = {
|
|||
'Fail sandaran tidak berada dalam senarai sandaran semasa, sila cuba muat turun dari direktori fail dan import untuk sandaran.',
|
||||
|
||||
snapshot: 'Snapshot | Snapshots',
|
||||
noAppData: 'Tiada aplikasi sistem yang boleh dipilih',
|
||||
noBackupData: 'Tiada data sandaran yang boleh dipilih',
|
||||
stepBaseData: 'Data Asas',
|
||||
stepAppData: 'Aplikasi Sistem',
|
||||
stepPanelData: 'Data Sistem',
|
||||
stepBackupData: 'Data Sandaran',
|
||||
stepOtherData: 'Data Lain',
|
||||
operationLog: 'Simpan log operasi',
|
||||
loginLog: 'Simpan log akses',
|
||||
systemLog: 'Simpan log sistem',
|
||||
taskLog: 'Simpan log tugas',
|
||||
monitorData: 'Simpan data pemantauan',
|
||||
selectAllImage: 'Simpan semua imej aplikasi',
|
||||
logLabel: 'Log',
|
||||
agentLabel: 'Konfigurasi Nod',
|
||||
appDataLabel: 'Data Aplikasi',
|
||||
appImage: 'Imej Aplikasi',
|
||||
appBackup: 'Sandaran Aplikasi',
|
||||
backupLabel: 'Direktori Sandaran',
|
||||
confLabel: 'Fail Konfigurasi',
|
||||
dockerLabel: 'Konteks',
|
||||
taskLabel: 'Tugas Berjadual',
|
||||
resourceLabel: 'Direktori Sumber Aplikasi',
|
||||
runtimeLabel: 'Persekitaran Runtime',
|
||||
appLabel: 'Aplikasi',
|
||||
databaseLabel: 'Pangkalan Data',
|
||||
snapshotLabel: 'Fail Snapshot',
|
||||
websiteLabel: 'Laman Web',
|
||||
directoryLabel: 'Direktori',
|
||||
appStoreLabel: 'Kedai Aplikasi',
|
||||
shellLabel: 'Skrip',
|
||||
tmpLabel: 'Direktori Sementara',
|
||||
sslLabel: 'Direktori Sijil',
|
||||
reCreate: 'Gagal membuat snapshot',
|
||||
reRollback: 'Gagal membalikkan snapshot',
|
||||
deleteHelper:
|
||||
'Semua fail snapshot termasuk yang ada dalam akaun sandaran pihak ketiga akan dipadamkan. Adakah anda mahu meneruskan?',
|
||||
status: 'Status snapshot',
|
||||
|
|
|
@ -1708,6 +1708,41 @@ const message = {
|
|||
'Arquivos de backup não estão na lista de backup atual, tente fazer o download do diretório de arquivos e importar para o backup.',
|
||||
|
||||
snapshot: 'Snapshot | Snapshots',
|
||||
noAppData: 'Nenhum aplicativo do sistema disponível para seleção',
|
||||
noBackupData: 'Nenhum dado de backup disponível para seleção',
|
||||
stepBaseData: 'Dados Básicos',
|
||||
stepAppData: 'Aplicativos do Sistema',
|
||||
stepPanelData: 'Dados do Sistema',
|
||||
stepBackupData: 'Dados de Backup',
|
||||
stepOtherData: 'Outros Dados',
|
||||
operationLog: 'Manter logs de operações',
|
||||
loginLog: 'Manter logs de acesso',
|
||||
systemLog: 'Manter logs do sistema',
|
||||
taskLog: 'Manter logs de tarefas',
|
||||
monitorData: 'Manter dados de monitoramento',
|
||||
selectAllImage: 'Fazer backup de todas as imagens de aplicativos',
|
||||
logLabel: 'Log',
|
||||
agentLabel: 'Configuração do Nó',
|
||||
appDataLabel: 'Dados de Aplicativos',
|
||||
appImage: 'Imagem do Aplicativo',
|
||||
appBackup: 'Backup de Aplicativo',
|
||||
backupLabel: 'Diretório de Backup',
|
||||
confLabel: 'Arquivos de Configuração',
|
||||
dockerLabel: 'Contêineres',
|
||||
taskLabel: 'Tarefas Agendadas',
|
||||
resourceLabel: 'Diretório de Recursos do Aplicativo',
|
||||
runtimeLabel: 'Ambiente de Execução',
|
||||
appLabel: 'Aplicativo',
|
||||
databaseLabel: 'Banco de Dados',
|
||||
snapshotLabel: 'Arquivos de Snapshot',
|
||||
websiteLabel: 'Site',
|
||||
directoryLabel: 'Diretório',
|
||||
appStoreLabel: 'Loja de Aplicativos',
|
||||
shellLabel: 'Script',
|
||||
tmpLabel: 'Diretório Temporário',
|
||||
sslLabel: 'Diretório de Certificados',
|
||||
reCreate: 'Falha ao criar snapshot',
|
||||
reRollback: 'Falha ao reverter snapshot',
|
||||
deleteHelper:
|
||||
'Todos os arquivos de snapshot, incluindo os da conta de backup de terceiros, serão excluídos. Você deseja continuar?',
|
||||
status: 'Status do snapshot',
|
||||
|
|
|
@ -1710,6 +1710,41 @@ const message = {
|
|||
'Файлы резервной копии отсутствуют в текущем списке резервных копий, попробуйте скачать из директории файлов и импортировать для резервного копирования.',
|
||||
|
||||
snapshot: 'Снапшот | Снапшоты',
|
||||
noAppData: 'Нет доступных системных приложений для выбора',
|
||||
noBackupData: 'Нет доступных данных для резервного копирования',
|
||||
stepBaseData: 'Основные данные',
|
||||
stepAppData: 'Системные приложения',
|
||||
stepPanelData: 'Системные данные',
|
||||
stepBackupData: 'Резервные данные',
|
||||
stepOtherData: 'Другие данные',
|
||||
operationLog: 'Сохранять журнал операций',
|
||||
loginLog: 'Сохранять журнал доступа',
|
||||
systemLog: 'Сохранять системный журнал',
|
||||
taskLog: 'Сохранять журнал задач',
|
||||
monitorData: 'Сохранять данные мониторинга',
|
||||
selectAllImage: 'Резервное копирование всех образов приложений',
|
||||
logLabel: 'Журнал',
|
||||
agentLabel: 'Конфигурация узла',
|
||||
appDataLabel: 'Данные приложения',
|
||||
appImage: 'Образ приложения',
|
||||
appBackup: 'Резервная копия приложения',
|
||||
backupLabel: 'Каталог резервных копий',
|
||||
confLabel: 'Конфигурационные файлы',
|
||||
dockerLabel: 'Контейнеры',
|
||||
taskLabel: 'Планировщик задач',
|
||||
resourceLabel: 'Каталог ресурсов приложения',
|
||||
runtimeLabel: 'Среда выполнения',
|
||||
appLabel: 'Приложение',
|
||||
databaseLabel: 'База данных',
|
||||
snapshotLabel: 'Файлы снимков',
|
||||
websiteLabel: 'Веб-сайт',
|
||||
directoryLabel: 'Каталог',
|
||||
appStoreLabel: 'Магазин приложений',
|
||||
shellLabel: 'Скрипт',
|
||||
tmpLabel: 'Временный каталог',
|
||||
sslLabel: 'Каталог сертификатов',
|
||||
reCreate: 'Не удалось создать снимок',
|
||||
reRollback: 'Не удалось откатить снимок',
|
||||
deleteHelper:
|
||||
'Все файлы снапшотов, включая те, что находятся в сторонних аккаунтах резервного копирования, будут удалены. Хотите продолжить?',
|
||||
status: 'Статус снапшота',
|
||||
|
|
|
@ -1569,6 +1569,7 @@ const message = {
|
|||
taskLog: '保留任務日誌',
|
||||
monitorData: '保留監控數據',
|
||||
selectAllImage: '備份所有應用鏡像',
|
||||
logLabel: '日誌',
|
||||
agentLabel: '節點配置',
|
||||
appDataLabel: '應用數據',
|
||||
appImage: '應用鏡像',
|
||||
|
|
|
@ -1560,6 +1560,7 @@ const message = {
|
|||
stepOtherData: '其他数据',
|
||||
monitorData: '监控数据',
|
||||
selectAllImage: '备份所有应用镜像',
|
||||
logLabel: '日志',
|
||||
agentLabel: '节点配置',
|
||||
appDataLabel: '应用数据',
|
||||
appImage: '应用镜像',
|
||||
|
|
|
@ -179,7 +179,7 @@ const loadContainerSetting = async () => {
|
|||
countItem.mirrors = res.data.registryMirrors || [];
|
||||
|
||||
const settingRes = await getSettingInfo();
|
||||
countItem.sockPath = settingRes.data.dockerSockPath || 'unix:///var/run/docker-x.sock';
|
||||
countItem.sockPath = settingRes.data.dockerSockPath || 'unix:///var/run/docker.sock';
|
||||
};
|
||||
|
||||
const goRouter = async (val: string) => {
|
||||
|
|
|
@ -233,7 +233,7 @@ import {
|
|||
updateDaemonJson,
|
||||
updateDaemonJsonByfile,
|
||||
} from '@/api/modules/container';
|
||||
import { getSettingInfo } from '@/api/modules/setting';
|
||||
import { getAgentSettingInfo } from '@/api/modules/setting';
|
||||
import { MsgSuccess } from '@/utils/message';
|
||||
import { checkNumberRange } from '@/global/form-rules';
|
||||
import { GlobalStore } from '@/store';
|
||||
|
@ -498,8 +498,8 @@ const search = async () => {
|
|||
form.ip6Tables = res.data.ip6Tables;
|
||||
form.experimental = res.data.experimental;
|
||||
|
||||
const settingRes = await getSettingInfo();
|
||||
form.dockerSockPath = settingRes.data.dockerSockPath || 'unix:///var/run/docker-x.sock';
|
||||
const settingRes = await getAgentSettingInfo();
|
||||
form.dockerSockPath = settingRes.data.dockerSockPath || 'unix:///var/run/docker.sock';
|
||||
};
|
||||
|
||||
onMounted(() => {
|
||||
|
|
Loading…
Add table
Reference in a new issue