12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- package imgproxy
- import (
- "github.com/imgproxy/imgproxy/v3/auximageprovider"
- "github.com/imgproxy/imgproxy/v3/ensure"
- "github.com/imgproxy/imgproxy/v3/fetcher"
- processinghandler "github.com/imgproxy/imgproxy/v3/handlers/processing"
- streamhandler "github.com/imgproxy/imgproxy/v3/handlers/stream"
- "github.com/imgproxy/imgproxy/v3/server"
- "github.com/imgproxy/imgproxy/v3/workers"
- )
- // HandlerConfigs holds the configurations for imgproxy handlers
- type HandlerConfigs struct {
- Processing processinghandler.Config
- Stream streamhandler.Config
- }
- // Config represents an instance configuration
- type Config struct {
- Workers workers.Config
- FallbackImage auximageprovider.StaticConfig
- WatermarkImage auximageprovider.StaticConfig
- Fetcher fetcher.Config
- Handlers HandlerConfigs
- Server server.Config
- }
- // NewDefaultConfig creates a new default configuration
- func NewDefaultConfig() Config {
- return Config{
- Workers: workers.NewDefaultConfig(),
- FallbackImage: auximageprovider.NewDefaultStaticConfig(),
- WatermarkImage: auximageprovider.NewDefaultStaticConfig(),
- Fetcher: fetcher.NewDefaultConfig(),
- Handlers: HandlerConfigs{
- Processing: processinghandler.NewDefaultConfig(),
- Stream: streamhandler.NewDefaultConfig(),
- },
- Server: server.NewDefaultConfig(),
- }
- }
- // LoadConfigFromEnv loads configuration from environment variables
- func LoadConfigFromEnv(c *Config) (*Config, error) {
- c = ensure.Ensure(c, NewDefaultConfig)
- var err error
- if _, err = server.LoadConfigFromEnv(&c.Server); err != nil {
- return nil, err
- }
- if _, err = auximageprovider.LoadFallbackStaticConfigFromEnv(&c.FallbackImage); err != nil {
- return nil, err
- }
- if _, err = auximageprovider.LoadWatermarkStaticConfigFromEnv(&c.WatermarkImage); err != nil {
- return nil, err
- }
- if _, err = workers.LoadConfigFromEnv(&c.Workers); err != nil {
- return nil, err
- }
- if _, err = fetcher.LoadConfigFromEnv(&c.Fetcher); err != nil {
- return nil, err
- }
- if _, err = processinghandler.LoadConfigFromEnv(&c.Handlers.Processing); err != nil {
- return nil, err
- }
- if _, err = streamhandler.LoadConfigFromEnv(&c.Handlers.Stream); err != nil {
- return nil, err
- }
- return c, nil
- }
|