mirror of
https://github.com/gmemstr/sliproad.git
synced 2024-09-20 00:21:15 +01:00
43 lines
997 B
Go
43 lines
997 B
Go
package files
|
|
|
|
import "fmt"
|
|
|
|
var ProviderConfig map[string]FileProvider
|
|
var Providers map[string]*FileProviderInterface
|
|
|
|
func TranslateProvider(codename string, i *FileProviderInterface) {
|
|
provider := ProviderConfig[codename]
|
|
if provider.Provider == "disk" {
|
|
*i = &DiskProvider{provider,}
|
|
return
|
|
}
|
|
|
|
if provider.Provider == "backblaze" {
|
|
bbProv := &BackblazeProvider{provider, provider.Config["bucket"], ""}
|
|
*i = bbProv
|
|
return
|
|
}
|
|
|
|
if provider.Provider == "s3" {
|
|
s3Prov := &S3Provider{provider, provider.Config["region"], provider.Config["bucket"]}
|
|
*i = s3Prov
|
|
return
|
|
}
|
|
|
|
*i = FileProvider{}
|
|
}
|
|
|
|
func SetupProviders() {
|
|
Providers = make(map[string]*FileProviderInterface)
|
|
for name, provider := range ProviderConfig {
|
|
var i FileProviderInterface
|
|
TranslateProvider(name, &i)
|
|
success := i.Setup(provider.Config)
|
|
if !success {
|
|
fmt.Printf("%s failed to initialize\n", name)
|
|
} else {
|
|
Providers[name] = &i
|
|
fmt.Printf("%s initialized successfully\n", name)
|
|
}
|
|
}
|
|
} |