mirror of
https://github.com/imgproxy/imgproxy.git
synced 2025-09-26 19:46:43 +02:00
94 lines
2.6 KiB
Go
94 lines
2.6 KiB
Go
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/options"
|
|
"github.com/imgproxy/imgproxy/v3/security"
|
|
"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
|
|
Security security.Config
|
|
Options options.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(),
|
|
Security: security.NewDefaultConfig(),
|
|
Options: options.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
|
|
}
|
|
|
|
if _, err = security.LoadConfigFromEnv(&c.Security); err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
if _, err = options.LoadConfigFromEnv(&c.Options); err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return c, nil
|
|
}
|