0b4a1b4594
- Updated OSSStorage validation errors to use internationalized messages. - Changed error messages in provider.go for unsupported file storage types. - Refactored tag_service.go to replace hardcoded error messages with internationalized versions. - Updated ticket_service.go to use internationalized error messages for various validation checks. - Refactored ticket_tag_service.go to use internationalized error messages for tag validation. - Changed ticket_view_service.go to use internationalized error messages for view validation. - Updated tool_catalog_service.go to use internationalized error messages for tool code validation. - Refactored user_service.go to replace error messages with internationalized versions. - Updated ws_service.go to use internationalized error messages for WebSocket handling. - Refactored wxwork_kf_inbound_service.go to use internationalized error messages for message handling. - Updated wxwork_kf_outbound_service.go to use internationalized error messages for outbound message handling. - Refactored wxwork_login_service.go to use internationalized error messages for login handling. - Updated login.go in wxwork package to use internationalized error messages for login state and ticket validation.
51 lines
1.2 KiB
Go
51 lines
1.2 KiB
Go
package storage
|
|
|
|
import (
|
|
"agent-desk/internal/pkg/config"
|
|
"agent-desk/internal/pkg/enums"
|
|
"agent-desk/internal/pkg/errorsx"
|
|
"io"
|
|
)
|
|
|
|
var providers = make(map[enums.AssetProvider]FileStorageProvider)
|
|
|
|
type FileStorageProvider interface {
|
|
ProviderType() enums.AssetProvider
|
|
Upload(reader io.Reader, key string, info UploadInfo) (*StoredFile, error)
|
|
GetURL(key string) string
|
|
GetSignedURL(key string) string
|
|
Delete(key string) error
|
|
Read(key string) (io.ReadCloser, error)
|
|
}
|
|
|
|
func GetDefault() (FileStorageProvider, error) {
|
|
return NewProvider(config.Current().Storage.Default)
|
|
}
|
|
|
|
func GetProvider(providerType enums.AssetProvider) (FileStorageProvider, error) {
|
|
if provider, exists := providers[providerType]; exists {
|
|
return provider, nil
|
|
}
|
|
provider, err := NewProvider(providerType)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
providers[providerType] = provider
|
|
|
|
return provider, nil
|
|
}
|
|
|
|
func NewProvider(provider enums.AssetProvider) (FileStorageProvider, error) {
|
|
cfg := config.Current().Storage
|
|
|
|
switch provider {
|
|
case "", enums.AssetProviderLocal:
|
|
return NewLocalStorage(cfg.Local), nil
|
|
case enums.AssetProviderOSS:
|
|
return NewOSSStorage(cfg.OSS), nil
|
|
default:
|
|
return nil, errorsx.InvalidParamI18n("error.e0082")
|
|
}
|
|
}
|