1
0
mirror of https://github.com/imgproxy/imgproxy.git synced 2026-04-23 19:41:06 +02:00
Files
2026-02-27 16:57:11 +01:00

54 lines
1.4 KiB
Go

package conditionalheaders
import (
"errors"
"time"
"github.com/imgproxy/imgproxy/v3/ensure"
"github.com/imgproxy/imgproxy/v3/env"
)
var (
IMGPROXY_LAST_MODIFIED_ENABLED = env.Bool("IMGPROXY_LAST_MODIFIED_ENABLED")
IMGPROXY_LAST_MODIFIED_BUSTER = env.DateTime("IMGPROXY_LAST_MODIFIED_BUSTER")
IMGPROXY_ETAG_ENABLED = env.Bool("IMGPROXY_ETAG_ENABLED")
IMGPROXY_ETAG_BUSTER = env.String("IMGPROXY_ETAG_BUSTER")
)
// Config represents conditional headers config
type Config struct {
LastModifiedEnabled bool // Whether to enable Last-Modified
LastModifiedBuster time.Time // Last-Modified buster
ETagEnabled bool // Whether to enable ETag
ETagBuster string // ETag buster
}
// NewDefaultConfig creates a new configuration with defaults
func NewDefaultConfig() Config {
return Config{
LastModifiedEnabled: true,
LastModifiedBuster: time.Time{},
ETagEnabled: true,
ETagBuster: "",
}
}
// LoadConfigFromEnv loads config from environment variables
func LoadConfigFromEnv(c *Config) (*Config, error) {
c = ensure.Ensure(c, NewDefaultConfig)
err := errors.Join(
IMGPROXY_LAST_MODIFIED_ENABLED.Parse(&c.LastModifiedEnabled),
IMGPROXY_ETAG_ENABLED.Parse(&c.ETagEnabled),
IMGPROXY_LAST_MODIFIED_BUSTER.Parse(&c.LastModifiedBuster),
IMGPROXY_ETAG_BUSTER.Parse(&c.ETagBuster),
)
return c, err
}
// Validate checks configuration values
func (c *Config) Validate() error {
return nil
}