config

package
v0.1.4 Latest Latest
Warning

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

Go to latest
Published: Jan 18, 2024 License: MIT Imports: 36 Imported by: 13

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 any, options ...source.Option) (err error)

Init 初始化配置

func SetAcceptEncodingKey added in v0.0.5

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

Types

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 Entity

type Entity interface {
	OnChange()
}

Entity 配置实体

type GRPC

type GRPC struct {
	Addr     string `yaml:"addr" json:"addr"` // default:  :9090
	CertFile string `yaml:"certFile" json:"certFile"`
	KeyFile  string `yaml:"keyFile" json:"keyFile"`
	Timeout  int    `yaml:"timeout" json:"timeout"` // default: 10
}

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

func (*GRPC) Init

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

Init init

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"`
}

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 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 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