fix: 解决同步快照名称加载错误的问题 (#1875)
This commit is contained in:
@@ -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) {
|
||||
|
@@ -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)
|
||||
}
|
||||
|
@@ -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)
|
||||
|
@@ -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
|
||||
|
@@ -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)
|
||||
}
|
||||
|
@@ -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)
|
||||
}
|
||||
|
@@ -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,
|
||||
|
@@ -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())
|
||||
}
|
||||
|
@@ -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)
|
||||
|
@@ -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({
|
||||
|
Reference in New Issue
Block a user