27 lines
867 B
Go
27 lines
867 B
Go
package plugins
|
|
|
|
import (
|
|
"schisandra-album-cloud-microservices/common/storage/config"
|
|
"schisandra-album-cloud-microservices/common/storage/constants"
|
|
"schisandra-album-cloud-microservices/common/storage/events"
|
|
"schisandra-album-cloud-microservices/common/storage/manager"
|
|
"schisandra-album-cloud-microservices/common/storage/storage"
|
|
)
|
|
|
|
// pluginFactories 存储所有插件的工厂函数
|
|
var pluginFactories = map[string]manager.Factory{
|
|
constants.ProviderAliOSS: func(config *config.StorageConfig, dispatcher events.Dispatcher) (storage.Service, error) {
|
|
return storage.NewAliOSS(config, dispatcher)
|
|
},
|
|
}
|
|
|
|
// RegisterPlugins 注册所有插件
|
|
func RegisterPlugins(manager *manager.Manager) error {
|
|
for provider, factory := range pluginFactories {
|
|
if err := manager.RegisterStorage(provider, factory); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
return nil
|
|
}
|