fix: 解决同步快照名称加载错误的问题 (#1875)

This commit is contained in:
ssongliu
2023-08-08 16:44:12 +08:00
committed by GitHub
parent 0c4400d6f7
commit 0e8a4eaf2e
10 changed files with 29 additions and 22 deletions

View File

@@ -37,7 +37,7 @@ type IBackupService interface {
BatchDeleteRecord(ids []uint) 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
MysqlRecover(db dto.CommonRecover) error
@@ -273,7 +273,7 @@ func (u *BackupService) Update(req dto.BackupOperate) error {
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))
if err != nil {
return nil, err
@@ -284,9 +284,19 @@ func (u *BackupService) ListFiles(req dto.BackupSearchFile) ([]interface{}, erro
}
prefix := "system_snapshot"
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) {

View File

@@ -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()
if err != nil {
return nil, err
@@ -137,7 +137,7 @@ func (cos cosClient) ListObjects(prefix string) ([]interface{}, error) {
return nil, err
}
var result []interface{}
var result []string
for _, item := range datas.Contents {
result = append(result, item.Key)
}

View File

@@ -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()
if err != nil {
return nil, constant.ErrInvalidParams
}
var result []interface{}
var result []string
marker := ""
for {
entries, _, nextMarker, hashNext, err := kodo.client.ListFiles(bucket, prefix, "", marker, 1000)

View File

@@ -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()
if err != nil {
return nil, constant.ErrInvalidParams
@@ -174,7 +174,7 @@ func (minIo minIoClient) ListObjects(prefix string) ([]interface{}, error) {
Prefix: prefix,
}
var result []interface{}
var result []string
for object := range minIo.client.ListObjects(context.Background(), bucket, opts) {
if object.Err != nil {
continue

View File

@@ -196,7 +196,7 @@ func (onedrive oneDriveClient) Download(src, target string) (bool, error) {
return true, nil
}
func (onedrive *oneDriveClient) ListObjects(prefix string) ([]interface{}, error) {
func (onedrive *oneDriveClient) ListObjects(prefix string) ([]string, error) {
prefix = "/" + strings.TrimPrefix(prefix, "/")
folderID, err := onedrive.loadIDByPath(prefix)
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)
}
var itemList []interface{}
var itemList []string
for _, item := range driveItems.DriveItems {
itemList = append(itemList, item.Name)
}

View File

@@ -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()
if err != nil {
return nil, constant.ErrInvalidParams
@@ -125,7 +125,7 @@ func (oss *ossClient) ListObjects(prefix string) ([]interface{}, error) {
if err != nil {
return nil, err
}
var result []interface{}
var result []string
for _, obj := range lor.Objects {
result = append(result, obj.Key)
}

View File

@@ -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()
if err != nil {
return nil, constant.ErrInvalidParams
}
svc := s3.New(&s3C.Sess)
var result []interface{}
var result []string
if err := svc.ListObjectsPages(&s3.ListObjectsInput{
Bucket: &bucket,
Prefix: &prefix,

View File

@@ -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()
if err != nil {
return nil, err
@@ -236,7 +236,7 @@ func (s sftpClient) ListObjects(prefix string) ([]interface{}, error) {
if err != nil {
return nil, err
}
var result []interface{}
var result []string
for _, file := range files {
result = append(result, file.Name())
}

View File

@@ -7,7 +7,7 @@ import (
type CloudStorageClient interface {
ListBuckets() ([]interface{}, error)
ListObjects(prefix string) ([]interface{}, error)
ListObjects(prefix string) ([]string, error)
Exist(path string) (bool, error)
Delete(path string) (bool, error)
Upload(src, target string) (bool, error)

View File

@@ -113,9 +113,6 @@ const loadBackups = async () => {
const loadFiles = async () => {
const res = await getFilesFromBackup(form.from);
fileNames.value = res.data || [];
for (let i = 0; i < fileNames.value.length; i++) {
fileNames.value[i] = fileNames.value[i].replaceAll('system_snapshot/', '');
}
};
defineExpose({