mirror of
https://github.com/1Panel-dev/1Panel.git
synced 2025-12-11 21:06:08 +08:00
fix: 解决同步快照名称加载错误的问题 (#1875)
This commit is contained in:
parent
0c4400d6f7
commit
0e8a4eaf2e
10 changed files with 29 additions and 22 deletions
|
|
@ -37,7 +37,7 @@ type IBackupService interface {
|
||||||
BatchDeleteRecord(ids []uint) error
|
BatchDeleteRecord(ids []uint) error
|
||||||
NewClient(backup *model.BackupAccount) (cloud_storage.CloudStorageClient, error)
|
NewClient(backup *model.BackupAccount) (cloud_storage.CloudStorageClient, error)
|
||||||
|
|
||||||
ListFiles(req dto.BackupSearchFile) ([]interface{}, error)
|
ListFiles(req dto.BackupSearchFile) ([]string, error)
|
||||||
|
|
||||||
MysqlBackup(db dto.CommonBackup) error
|
MysqlBackup(db dto.CommonBackup) error
|
||||||
MysqlRecover(db dto.CommonRecover) error
|
MysqlRecover(db dto.CommonRecover) error
|
||||||
|
|
@ -273,7 +273,7 @@ func (u *BackupService) Update(req dto.BackupOperate) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (u *BackupService) ListFiles(req dto.BackupSearchFile) ([]interface{}, error) {
|
func (u *BackupService) ListFiles(req dto.BackupSearchFile) ([]string, error) {
|
||||||
backup, err := backupRepo.Get(backupRepo.WithByType(req.Type))
|
backup, err := backupRepo.Get(backupRepo.WithByType(req.Type))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
|
@ -284,9 +284,19 @@ func (u *BackupService) ListFiles(req dto.BackupSearchFile) ([]interface{}, erro
|
||||||
}
|
}
|
||||||
prefix := "system_snapshot"
|
prefix := "system_snapshot"
|
||||||
if len(backup.BackupPath) != 0 {
|
if len(backup.BackupPath) != 0 {
|
||||||
prefix = path.Join("/"+strings.TrimPrefix(backup.BackupPath, "/"), prefix)
|
prefix = path.Join(strings.TrimPrefix(backup.BackupPath, "/"), prefix)
|
||||||
}
|
}
|
||||||
return client.ListObjects(prefix)
|
files, err := client.ListObjects(prefix)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
var datas []string
|
||||||
|
for _, file := range files {
|
||||||
|
if len(file) != 0 {
|
||||||
|
datas = append(datas, path.Base(file))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return datas, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (u *BackupService) NewClient(backup *model.BackupAccount) (cloud_storage.CloudStorageClient, error) {
|
func (u *BackupService) NewClient(backup *model.BackupAccount) (cloud_storage.CloudStorageClient, error) {
|
||||||
|
|
|
||||||
|
|
@ -127,7 +127,7 @@ func (cos *cosClient) GetBucket() (string, error) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (cos cosClient) ListObjects(prefix string) ([]interface{}, error) {
|
func (cos cosClient) ListObjects(prefix string) ([]string, error) {
|
||||||
client, err := cos.newClientWithBucket()
|
client, err := cos.newClientWithBucket()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
|
@ -137,7 +137,7 @@ func (cos cosClient) ListObjects(prefix string) ([]interface{}, error) {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
var result []interface{}
|
var result []string
|
||||||
for _, item := range datas.Contents {
|
for _, item := range datas.Contents {
|
||||||
result = append(result, item.Key)
|
result = append(result, item.Key)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -119,13 +119,13 @@ func (kodo *kodoClient) GetBucket() (string, error) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (kodo kodoClient) ListObjects(prefix string) ([]interface{}, error) {
|
func (kodo kodoClient) ListObjects(prefix string) ([]string, error) {
|
||||||
bucket, err := kodo.GetBucket()
|
bucket, err := kodo.GetBucket()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, constant.ErrInvalidParams
|
return nil, constant.ErrInvalidParams
|
||||||
}
|
}
|
||||||
|
|
||||||
var result []interface{}
|
var result []string
|
||||||
marker := ""
|
marker := ""
|
||||||
for {
|
for {
|
||||||
entries, _, nextMarker, hashNext, err := kodo.client.ListFiles(bucket, prefix, "", marker, 1000)
|
entries, _, nextMarker, hashNext, err := kodo.client.ListFiles(bucket, prefix, "", marker, 1000)
|
||||||
|
|
|
||||||
|
|
@ -164,7 +164,7 @@ func (minIo *minIoClient) GetBucket() (string, error) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (minIo minIoClient) ListObjects(prefix string) ([]interface{}, error) {
|
func (minIo minIoClient) ListObjects(prefix string) ([]string, error) {
|
||||||
bucket, err := minIo.GetBucket()
|
bucket, err := minIo.GetBucket()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, constant.ErrInvalidParams
|
return nil, constant.ErrInvalidParams
|
||||||
|
|
@ -174,7 +174,7 @@ func (minIo minIoClient) ListObjects(prefix string) ([]interface{}, error) {
|
||||||
Prefix: prefix,
|
Prefix: prefix,
|
||||||
}
|
}
|
||||||
|
|
||||||
var result []interface{}
|
var result []string
|
||||||
for object := range minIo.client.ListObjects(context.Background(), bucket, opts) {
|
for object := range minIo.client.ListObjects(context.Background(), bucket, opts) {
|
||||||
if object.Err != nil {
|
if object.Err != nil {
|
||||||
continue
|
continue
|
||||||
|
|
|
||||||
|
|
@ -196,7 +196,7 @@ func (onedrive oneDriveClient) Download(src, target string) (bool, error) {
|
||||||
return true, nil
|
return true, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (onedrive *oneDriveClient) ListObjects(prefix string) ([]interface{}, error) {
|
func (onedrive *oneDriveClient) ListObjects(prefix string) ([]string, error) {
|
||||||
prefix = "/" + strings.TrimPrefix(prefix, "/")
|
prefix = "/" + strings.TrimPrefix(prefix, "/")
|
||||||
folderID, err := onedrive.loadIDByPath(prefix)
|
folderID, err := onedrive.loadIDByPath(prefix)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
@ -212,7 +212,7 @@ func (onedrive *oneDriveClient) ListObjects(prefix string) ([]interface{}, error
|
||||||
return nil, fmt.Errorf("do request for list failed, err: %v", err)
|
return nil, fmt.Errorf("do request for list failed, err: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
var itemList []interface{}
|
var itemList []string
|
||||||
for _, item := range driveItems.DriveItems {
|
for _, item := range driveItems.DriveItems {
|
||||||
itemList = append(itemList, item.Name)
|
itemList = append(itemList, item.Name)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -116,7 +116,7 @@ func (oss *ossClient) GetBucket() (*osssdk.Bucket, error) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (oss *ossClient) ListObjects(prefix string) ([]interface{}, error) {
|
func (oss *ossClient) ListObjects(prefix string) ([]string, error) {
|
||||||
bucket, err := oss.GetBucket()
|
bucket, err := oss.GetBucket()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, constant.ErrInvalidParams
|
return nil, constant.ErrInvalidParams
|
||||||
|
|
@ -125,7 +125,7 @@ func (oss *ossClient) ListObjects(prefix string) ([]interface{}, error) {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
var result []interface{}
|
var result []string
|
||||||
for _, obj := range lor.Objects {
|
for _, obj := range lor.Objects {
|
||||||
result = append(result, obj.Key)
|
result = append(result, obj.Key)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -184,13 +184,13 @@ func (s3C *s3Client) getBucket() (string, error) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s3C *s3Client) ListObjects(prefix string) ([]interface{}, error) {
|
func (s3C *s3Client) ListObjects(prefix string) ([]string, error) {
|
||||||
bucket, err := s3C.getBucket()
|
bucket, err := s3C.getBucket()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, constant.ErrInvalidParams
|
return nil, constant.ErrInvalidParams
|
||||||
}
|
}
|
||||||
svc := s3.New(&s3C.Sess)
|
svc := s3.New(&s3C.Sess)
|
||||||
var result []interface{}
|
var result []string
|
||||||
if err := svc.ListObjectsPages(&s3.ListObjectsInput{
|
if err := svc.ListObjectsPages(&s3.ListObjectsInput{
|
||||||
Bucket: &bucket,
|
Bucket: &bucket,
|
||||||
Prefix: &prefix,
|
Prefix: &prefix,
|
||||||
|
|
|
||||||
|
|
@ -218,7 +218,7 @@ func (s sftpClient) getBucket() (string, error) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s sftpClient) ListObjects(prefix string) ([]interface{}, error) {
|
func (s sftpClient) ListObjects(prefix string) ([]string, error) {
|
||||||
bucket, err := s.getBucket()
|
bucket, err := s.getBucket()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
|
@ -236,7 +236,7 @@ func (s sftpClient) ListObjects(prefix string) ([]interface{}, error) {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
var result []interface{}
|
var result []string
|
||||||
for _, file := range files {
|
for _, file := range files {
|
||||||
result = append(result, file.Name())
|
result = append(result, file.Name())
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ import (
|
||||||
|
|
||||||
type CloudStorageClient interface {
|
type CloudStorageClient interface {
|
||||||
ListBuckets() ([]interface{}, error)
|
ListBuckets() ([]interface{}, error)
|
||||||
ListObjects(prefix string) ([]interface{}, error)
|
ListObjects(prefix string) ([]string, error)
|
||||||
Exist(path string) (bool, error)
|
Exist(path string) (bool, error)
|
||||||
Delete(path string) (bool, error)
|
Delete(path string) (bool, error)
|
||||||
Upload(src, target string) (bool, error)
|
Upload(src, target string) (bool, error)
|
||||||
|
|
|
||||||
|
|
@ -113,9 +113,6 @@ const loadBackups = async () => {
|
||||||
const loadFiles = async () => {
|
const loadFiles = async () => {
|
||||||
const res = await getFilesFromBackup(form.from);
|
const res = await getFilesFromBackup(form.from);
|
||||||
fileNames.value = res.data || [];
|
fileNames.value = res.data || [];
|
||||||
for (let i = 0; i < fileNames.value.length; i++) {
|
|
||||||
fileNames.value[i] = fileNames.value[i].replaceAll('system_snapshot/', '');
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
defineExpose({
|
defineExpose({
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue