29 lines
487 B
Go
29 lines
487 B
Go
package storage
|
|
|
|
import (
|
|
domain "RenewCMS/internal/domain/image"
|
|
"fmt"
|
|
)
|
|
|
|
const (
|
|
DriverLocal = "local"
|
|
DriverS3 = "s3"
|
|
)
|
|
|
|
type Config struct {
|
|
Driver string
|
|
Location string
|
|
S3 S3Config
|
|
}
|
|
|
|
func Open(config Config) (domain.Storage, error) {
|
|
switch config.Driver {
|
|
case DriverLocal:
|
|
return NewLocalStorage(config.Location), nil
|
|
case DriverS3:
|
|
return OpenS3Storage(config.S3)
|
|
default:
|
|
return nil, fmt.Errorf("unsupported storage driver %q", config.Driver)
|
|
}
|
|
}
|