config

package
v0.2.7 Latest Latest
Warning

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

Go to latest
Published: Aug 26, 2024 License: MIT Imports: 44 Imported by: 14

Documentation

Index

Constants

This section is empty.

Variables

View Source
var URLTemplate = map[ProviderType]string{
	OSS:  "https://%s.aliyuncs.com",
	OOS:  "https://oos-%s.ctyunapi.cn",
	KODO: "https://s3-%s.qiniucs.com",
	COS:  "https://cos.%s.myqcloud.com",
	OBS:  "https://obs.%s.myhuaweicloud.com",
	BOS:  "https://s3.%s.bcebos.com",
	GCS:  "https://storage.googleapis.com",
	KS3:  "https://ks3-%s.ksyuncs.com",
}

URLTemplate storage provider url template

Functions

func GetAcceptEncodingKey added in v0.0.5

func GetAcceptEncodingKey(ctx context.Context) (v string)

func Init

func Init(cfg source.Entity, options ...source.Option) (err error)

Init 初始化配置

func SetAcceptEncodingKey added in v0.0.5

func SetAcceptEncodingKey(ctx context.Context, value string) context.Context

Types

type Clients added in v0.1.5

type Clients map[string]ServerParams

type Endpoint added in v0.1.1

type Endpoint struct {
	AuthURL       string `yaml:"authURL" json:"authURL"`
	DeviceAuthURL string `yaml:"deviceAuthURL" json:"deviceAuthURL"`
	TokenURL      string `yaml:"tokenURL" json:"tokenURL"`

	// AuthStyle optionally specifies how the endpoint wants the
	// client ID & client secret sent. The zero value means to
	// auto-detect.
	AuthStyle int `yaml:"authStyle" json:"authStyle"`
}

type GRPC

type GRPC struct {
	ServerParams `yaml:",inline" json:",inline"`
	Clients      Clients `yaml:"client" json:"client"`
}

GRPC grpc服务公共配置(选用)

func (*GRPC) GetGRPCClient added in v0.1.5

func (e *GRPC) GetGRPCClient(key string, opts ...grpc.DialOption) *grpc.ClientConn

func (*GRPC) Init

func (e *GRPC) Init(
	register func(srv *serverGRPC.Server),
	opts ...serverGRPC.Option) server.Runnable

Init grpc server

type Limiter added in v0.1.0

type Limiter interface {
	Allow() bool
	Wait(context.Context) error
}

type LimiterName added in v0.1.0

type LimiterName string
const (
	SingleLimiter LimiterName = "single"
)

type Listen

type Listen struct {
	Name     string `yaml:"name" json:"name"`
	Addr     string `yaml:"addr" json:"addr"`
	CertFile string `yaml:"certFile" json:"certFile"`
	KeyFile  string `yaml:"keyFile" json:"keyFile"`
	Timeout  int    `yaml:"timeout" json:"timeout"` // default: 10s
	Metrics  bool   `yaml:"metrics" json:"metrics"`
	Healthz  bool   `yaml:"healthz" json:"healthz"`
	Readyz   bool   `yaml:"readyz" json:"readyz"`
	Pprof    bool   `yaml:"pprof" json:"pprof"`
}

Listen tcp listener config

func (*Listen) Init

func (e *Listen) Init(opts ...listener.Option) server.Runnable

Init tcp listener

type Logger

type Logger struct {
	Path       string     `yaml:"path" json:"path"`
	Level      slog.Level `yaml:"level" json:"level"`
	Stdout     string     `yaml:"stdout" json:"stdout"`
	AddSource  bool       `yaml:"addSource" json:"addSource"`
	Cap        uint       `yaml:"cap" json:"cap"`
	Json       bool       `yaml:"json" json:"json"`
	BufferSize uint       `yaml:"bufferSize" json:"bufferSize"`
	Loki       *Loki      `yaml:"loki" json:"loki"`
}

Logger logger配置

func (*Logger) GormLevel added in v0.0.5

func (e *Logger) GormLevel() logger.LogLevel

func (*Logger) Init

func (e *Logger) Init()

Init 初始化日志

type Loki added in v0.1.9

type Loki struct {
	URL      string            `yaml:"url" json:"url"`
	Labels   map[string]string `yaml:"labels" json:"labels"`
	Interval time.Duration     `yaml:"interval" json:"interval"`
}

func (*Loki) MergeLabels added in v0.1.9

func (l *Loki) MergeLabels(labels map[string]string)

type OAuth2

type OAuth2 struct {
	Issuer       string   `yaml:"issuer" json:"issuer"`
	Endpoint     Endpoint `yaml:"endpoint" json:"endpoint"`
	ClientID     string   `yaml:"clientID" json:"clientID"`
	ClientSecret string   `yaml:"clientSecret" json:"clientSecret"`
	Scopes       []string `yaml:"scopes" json:"scopes"`
	RedirectURL  string   `yaml:"redirectURL" json:"redirectURL"`
	AllowGroup   []string `yaml:"allowGroup" json:"allowGroup"`
}

OAuth2 holds the configuration for the OAuth2 provider.

func (*OAuth2) GetClientID

func (e *OAuth2) GetClientID() string

GetClientID returns the OAuth2 client ID.

func (*OAuth2) GetClientSecret

func (e *OAuth2) GetClientSecret() string

GetClientSecret returns the OAuth2 client secret.

func (*OAuth2) GetIssuer

func (e *OAuth2) GetIssuer() string

GetIssuer returns the OAuth2 issuer.

func (*OAuth2) GetOAuth2Config

func (e *OAuth2) GetOAuth2Config(c context.Context) (*oauth2.Config, error)

GetOAuth2Config returns an oauth2.Config.

func (*OAuth2) GetRedirectURL

func (e *OAuth2) GetRedirectURL() string

GetRedirectURL returns the OAuth2 redirect URL.

func (*OAuth2) GetScopes

func (e *OAuth2) GetScopes() []string

GetScopes returns the OAuth2 scopes.

type ProviderType

type ProviderType string

ProviderType storage provider type

const (
	// S3 aws s3
	S3 ProviderType = "s3"
	// OSS aliyun oss
	OSS ProviderType = "oss"
	// OOS ctyun oos
	OOS ProviderType = "oos"
	// KODO qiniu kodo
	KODO ProviderType = "kodo"
	// COS tencent cos
	COS ProviderType = "cos"
	// OBS huawei obs
	OBS ProviderType = "obs"
	// BOS baidu bos
	BOS ProviderType = "bos"
	// GCS google gcs
	GCS ProviderType = "gcs"
	// KS3 kingsoft ks3
	KS3 ProviderType = "ks3"
	// MINIO minio storage
	MINIO ProviderType = "minio"
)

type RateLimit added in v0.1.0

type RateLimit struct {
	// 限流器类型
	Name LimiterName `json:"name" yaml:"name"`
	// 限流器配置
	Rate float64 `json:"rate" yaml:"rate"`
	// 限流器最大存储令牌数
	Bursts int `json:"bursts" yaml:"bursts"`
}

func (*RateLimit) Init added in v0.1.0

func (e *RateLimit) Init() Limiter

func (*RateLimit) String added in v0.1.0

func (e *RateLimit) String() string

type ServerParams added in v0.1.5

type ServerParams struct {
	Addr     string        `yaml:"addr" json:"addr"` // default:  :9090
	CertFile string        `yaml:"certFile" json:"certFile"`
	KeyFile  string        `yaml:"keyFile" json:"keyFile"`
	Timeout  time.Duration `yaml:"timeout" json:"timeout"` // default: 10
}

type Storage

type Storage struct {
	Type            ProviderType `yaml:"type"`
	SigningMethod   string       `yaml:"signingMethod"`
	Region          string       `yaml:"region"`
	Bucket          string       `yaml:"bucket"`
	Endpoint        string       `yaml:"endpoint"`
	AccessKeyID     string       `yaml:"accessKeyID"`
	SecretAccessKey string       `yaml:"secretAccessKey"`
	// contains filtered or unexported fields
}

Storage storage

func (*Storage) GetClient

func (o *Storage) GetClient() *s3.Client

GetClient get client

func (*Storage) Init

func (o *Storage) Init()

Init init

type TLS

type TLS struct {
	// Cert cert file path
	Cert string `yaml:"cert" json:"cert"`
	// Key file path
	Key string `yaml:"key" json:"key"`
	// Ca file path
	Ca string `yaml:"ca" json:"ca"`
}

TLS config

func (*TLS) GetTLS

func (c *TLS) GetTLS() (*tls.Config, error)

GetTLS get tls config

Directories

Path Synopsis
fs
s3

Jump to

Keyboard shortcuts

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