mirror of
https://github.com/StarFleetCPTN/GoMFT.git
synced 2026-11-08 13:07:26 +01:00
feat: Enhance configuration forms and validation for storage providers
- Added hidden input fields to ensure critical values are submitted with the form for S3 and other storage providers. - Implemented JavaScript functionality to auto-populate hidden fields based on user input for S3-compatible providers. - Updated validation logic for WebDAV and SMB providers to ensure required fields are checked. - Enhanced the configuration handler to explicitly set fields for various storage provider types, including S3, Wasabi, MinIO, and B2. - Improved error handling and logging for form submissions and provider credential management.
This commit is contained in:
1 parent
776c4971a6
commit
dc665b9fa4
8 files changed
+661
-30
No files matched your search
@@ -104,7 +104,15 @@ func createTempTransferConfig(provider *db.StorageProvider) *db.TransferConfig {
|
||||
config.SetSourcePassiveMode(passive)
|
||||
}
|
||||
|
||||
case db.ProviderTypeS3:
|
||||
case db.ProviderTypeS3, db.ProviderTypeWasabi, db.ProviderTypeMinio:
|
||||
config.SourceAccessKey = provider.AccessKey
|
||||
config.SourceSecretKey = provider.SecretKey
|
||||
config.SourceBucket = provider.Bucket
|
||||
config.SourceRegion = provider.Region
|
||||
config.SourceEndpoint = provider.Endpoint
|
||||
|
||||
case db.ProviderTypeB2:
|
||||
// B2 uses AccessKey as account and SecretKey as application key
|
||||
config.SourceAccessKey = provider.AccessKey
|
||||
config.SourceSecretKey = provider.SecretKey
|
||||
config.SourceBucket = provider.Bucket
|
||||
@@ -162,13 +170,18 @@ func (s *ConnectorService) decryptProviderCredentials(provider *db.StorageProvid
|
||||
provider.Password = password
|
||||
}
|
||||
|
||||
case db.ProviderTypeS3:
|
||||
case db.ProviderTypeS3, db.ProviderTypeWasabi, db.ProviderTypeMinio, db.ProviderTypeB2:
|
||||
if provider.EncryptedSecretKey != "" {
|
||||
secretKey, err := s.credentialEncryptor.Decrypt(provider.EncryptedSecretKey)
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to decrypt secret key: %w", err)
|
||||
}
|
||||
provider.SecretKey = secretKey
|
||||
log.Printf("DEBUG: Decrypted secret key for %s provider (ID: %d, Type: %s) with length: %d",
|
||||
provider.Name, provider.ID, provider.Type, len(provider.SecretKey))
|
||||
} else {
|
||||
log.Printf("WARNING: No encrypted secret key found for %s provider (ID: %d, Type: %s)",
|
||||
provider.Name, provider.ID, provider.Type)
|
||||
}
|
||||
|
||||
case db.ProviderTypeOneDrive, db.ProviderTypeGoogleDrive, db.ProviderTypeGooglePhoto:
|
||||
|
||||
Reference in new issue
Block a user