diff --git a/internal/data/backup.go b/internal/data/backup.go index 699f7aa3..ec5c0b06 100644 --- a/internal/data/backup.go +++ b/internal/data/backup.go @@ -400,6 +400,7 @@ func (r *backupRepo) getStorage(backupStorage biz.BackupStorage) (storage.Storag return storage.NewLocal(backupStorage.Info.Path) case biz.BackupStorageTypeS3: return storage.NewS3(storage.S3Config{ + Region: backupStorage.Info.Region, Bucket: backupStorage.Info.Bucket, AccessKeyID: backupStorage.Info.AccessKey, SecretAccessKey: backupStorage.Info.SecretKey, diff --git a/internal/service/backup_storage.go b/internal/service/backup_storage.go index c5269e89..80756fad 100644 --- a/internal/service/backup_storage.go +++ b/internal/service/backup_storage.go @@ -124,6 +124,7 @@ func (s *BackupStorageService) validateStorage(accountType string, info types.Ba switch biz.BackupStorageType(accountType) { case biz.BackupStorageTypeS3: client, err = storage.NewS3(storage.S3Config{ + Region: info.Region, Bucket: info.Bucket, AccessKeyID: info.AccessKey, SecretAccessKey: info.SecretKey, diff --git a/pkg/storage/s3_test.go b/pkg/storage/s3_test.go new file mode 100644 index 00000000..7ae303f5 --- /dev/null +++ b/pkg/storage/s3_test.go @@ -0,0 +1,9 @@ +package storage + +import "testing" + +func TestS3(t *testing.T) { + s3, err := NewS3(S3Config{ + Region: "us-west-1", + }) +} diff --git a/pkg/types/backup.go b/pkg/types/backup.go index 1505b12f..f14602e2 100644 --- a/pkg/types/backup.go +++ b/pkg/types/backup.go @@ -7,6 +7,7 @@ type BackupStorageInfo struct { AccessKey string `json:"access_key"` // 访问密钥 SecretKey string `json:"secret_key"` // 私钥 Style string `json:"style" validate:"required|in:path,virtual-hosted"` // virtual-hosted, path + Region string `json:"region"` // 地区 Endpoint string `json:"endpoint" validate:"required"` // 端点 Scheme string `json:"scheme" validate:"required|in:http,https"` // http, https Bucket string `json:"bucket" validate:"required"` // 存储桶 diff --git a/web/src/views/backup/StorageView.vue b/web/src/views/backup/StorageView.vue index 94a553fc..e551ea8b 100644 --- a/web/src/views/backup/StorageView.vue +++ b/web/src/views/backup/StorageView.vue @@ -37,7 +37,8 @@ const defaultModel = { info: { access_key: '', secret_key: '', - style: 'virtual_hosted', + style: 'virtual-hosted', + region: '', endpoint: '', scheme: 'https', bucket: '', @@ -246,6 +247,12 @@ onMounted(() => { + + +