config

package
v1.3.2-0...-e8c36ab Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 15, 2021 License: Unlicense Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Authorization

type Authorization map[string]string

func (Authorization) Decode

func (a Authorization) Decode(value string) error

type LoggerSettings

type LoggerSettings struct {
	Format string `default:"json"`
	Output io.Writer
	Level  string `default:"info"`
}

type Option

type Option func(cfg *Settings)

func WithDocRoot

func WithDocRoot(docRoot string) Option

func WithDocRootPrefix

func WithDocRootPrefix(prefix string) Option

func WithDownLoadEndpoint

func WithDownLoadEndpoint(path string) Option

func WithListenAddr

func WithListenAddr(addr string) Option

func WithLoggerFormat

func WithLoggerFormat(format string) Option

func WithLoggerLevel

func WithLoggerLevel(level string) Option

func WithLoggerOutput

func WithLoggerOutput(o io.Writer) Option

func WithMetricsAlternativeListenAddr

func WithMetricsAlternativeListenAddr(addr string) Option

func WithMetricsEnabled

func WithMetricsEnabled(enabled bool) Option

func WithMetricsPath

func WithMetricsPath(path string) Option

func WithMetricsRequestDurationBuckets

func WithMetricsRequestDurationBuckets(buckets []float64) Option

func WithPrometheusRegistry

func WithPrometheusRegistry(r *prometheus.Registry) Option

func WithReadAuthorizations

func WithReadAuthorizations(auth Authorization) Option

func WithReadTimeout

func WithReadTimeout(duration time.Duration) Option

func WithUploadEndpoint

func WithUploadEndpoint(path string) Option

func WithWriteAuthorizations

func WithWriteAuthorizations(auth Authorization) Option

func WithWriteTimeout

func WithWriteTimeout(duration time.Duration) Option

type Settings

type Settings struct {
	ListenAddr                    string `default:"0.0.0.0:8080"`
	DocRoot                       string `required:"."`
	Prefix                        string `default:"/"`
	UploadEndpoint                string
	DownloadEndpoint              string
	ShutdownTimeout               time.Duration `default:"1s"`
	Logger                        *LoggerSettings
	ReadTimeout                   time.Duration `default:"5s"`
	WriteTimeout                  time.Duration `default:"25s"`
	ReadAuthorizations            Authorization
	WriteAuthorizations           Authorization
	PrometheusRegistry            *prometheus.Registry
	MetricsEnabled                bool   `default:"true"`
	MetricsPath                   string `default:"/metrics"`
	MetricsAlternativeListenAddr  string
	MetricsRequestDurationBuckets []float64
}

func ForOptions

func ForOptions(opts ...Option) *Settings

func FromEnv

func FromEnv() (*Settings, error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL