refactor: Update rclone connection logic for provider handling

- Consolidated provider handling for Hetzner and S3-compatible providers (Minio, Wasabi) to improve clarity and maintainability.
- Adjusted configuration arguments to use the primary provider name consistently across different cases.
- Enhanced endpoint handling for Minio and B2 providers, ensuring correct parameter usage in rclone configuration generation.
This commit is contained in:
StarFleetCPTN
2025-04-08 21:35:19 -07:00
parent 87bdfc5e91
commit e2ab2eb603
+24 -18
View File
@@ -90,12 +90,20 @@ func TestRcloneConnection(config db.TransferConfig, providerType string, dbInsta
rclonePath = "rclone"
}
primaryProvider := provider
// Convert hetzner to sftp
if provider == "hetzner" {
provider = "sftp"
primaryProvider = "sftp"
}
// S3 compatible providers
if provider == "minio" || provider == "wasabi" {
primaryProvider = "s3"
}
createArgs := []string{
"config", "create", remoteName, provider,
"config", "create", remoteName, primaryProvider,
"--config", tempConfigPath,
"--non-interactive",
"--log-level", "DEBUG",
@@ -145,25 +153,9 @@ func TestRcloneConnection(config db.TransferConfig, providerType string, dbInsta
if region != "" {
createArgs = append(createArgs, "region", region)
}
endpointValue := endpoint
if endpointValue == "" {
endpointValue = "s3.wasabisys.com"
}
createArgs = append(createArgs, "endpoint", endpointValue)
case "b2":
createArgs = append(createArgs, "provider", "B2", "env_auth", "false")
if accessKey != "" {
createArgs = append(createArgs, "account", accessKey)
}
if secretKey != "" {
createArgs = append(createArgs, "key", secretKey)
}
if endpoint != "" {
createArgs = append(createArgs, "endpoint", endpoint)
}
if region != "" {
createArgs = append(createArgs, "region", region)
}
case "minio":
createArgs = append(createArgs, "provider", "Minio", "env_auth", "false")
if accessKey != "" {
@@ -172,6 +164,20 @@ func TestRcloneConnection(config db.TransferConfig, providerType string, dbInsta
if secretKey != "" {
createArgs = append(createArgs, "secret_access_key", secretKey)
}
if region != "" {
createArgs = append(createArgs, "region", region)
}
if endpoint != "" {
createArgs = append(createArgs, "endpoint", endpoint)
}
case "b2":
createArgs = append(createArgs, "provider", "B2", "env_auth", "false")
if accessKey != "" {
createArgs = append(createArgs, "account", accessKey)
}
if secretKey != "" {
createArgs = append(createArgs, "key", secretKey)
}
if endpoint != "" {
createArgs = append(createArgs, "endpoint", endpoint)
}