Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func RegisterTransformKind ¶ added in v0.2.0
func RegisterTransformKind(kind string)
RegisterTransformKind register new transformation in config validator
Types ¶
type Bucket ¶
type Bucket struct { Transform *Transform `yaml:"transform,omitempty"` Storages StorageTypes `yaml:"storages"` Keys []S3Key `yaml:"keys"` Headers map[string]string `yaml:"headers"` Name string }
Bucket describe single bucket entry in config
type CacheCfg ¶ added in v0.13.0
type CacheCfg struct { Type string `yaml:"type"` Address []string `yaml:"address"` MaxCacheItemSize int64 `yaml:"maxCacheItemSizeMB"` CacheSize int64 `yaml:"cacheSize"` MinUseCount uint64 `yaml:"minUseCount"` ClientConfig map[string]string `yaml:"clientConfig"` }
CacheCfg configure type of cache
type Config ¶
type Config struct { Buckets map[string]Bucket `yaml:"buckets"` Headers []HeaderYaml `yaml:"headers"` Server Server `yaml:"server"` BaseConfigPath string // contains filtered or unexported fields }
Config contains configuration for buckets etc
Config should be used like singleton
func (*Config) BucketsByAccessKey ¶
BucketsByAccessKey return list of buckets that have given accessKey
func (*Config) Load ¶
Load reads config data from file How configuration file should be formatted see README.md
func (*Config) LoadFromString ¶
LoadFromString parse configuration form string
type Filters ¶ added in v0.15.0
type Filters struct { Thumbnail *struct { Width int `yaml:"width"` Height int `yaml:"height"` Mode string `yaml:"mode"` PreserveAspectRatio bool `yaml:"preserveAspectRatio"` Fill bool `yaml:"fill"` } `yaml:"thumbnail,omitempty"` Interlace bool `yaml:"interlace"` Crop *struct { Width int `yaml:"width"` Height int `yaml:"height"` Gravity string `yaml:"gravity"` Mode string `yaml:"mode"` Embed bool `yaml:"embed"` } `yaml:"crop,omitempty"` Extract *struct { Width int `yaml:"width"` Height int `yaml:"height"` Top int `yaml:"top"` Left int `yaml:"left"` } `yaml:"extract,omitempty"` ResizeCropAuto *struct { Width int `yaml:"width"` Height int `yaml:"height"` } `yaml:"resizeCropAuto,omitempty"` AutoRotate bool `yaml:"auto_rotate"` Grayscale bool `yaml:"grayscale"` Strip bool `yaml:"strip"` Blur *struct { Sigma float64 `yaml:"sigma"` MinAmpl float64 `yaml:"minAmpl"` } `yaml:"blur,omitempty"` Watermark *struct { Image string `yaml:"image"` Position string `yaml:"position"` Opacity float32 `yaml:"opacity"` } `yaml:"watermark,omitempty"` Rotate *struct { Angle int `yaml:"angle"` } `yaml:"rotate,omitempty"` }
Filter yaml configuration filters
type HeaderYaml ¶
type HeaderYaml struct { StatusCodes []int `yaml:"statusCodes"` Override bool `yaml:"override"` Values map[string]string `yaml:"values"` }
HeaderYaml allow you to override response headers
type LockCfg ¶ added in v0.18.0
type LockCfg struct { Type string `yaml:"type"` Address []string `yaml:"address"` ClientConfig map[string]string `yaml:"clientConfig"` }
LockCfg configure redis lock
type Preset ¶
type Preset struct { Quality int `yaml:"quality" json:"quality"` Format string `yaml:"format" json:"format"` Filters Filters `yaml:"filters" json:"filters"` }
Preset describe properties of transform preset
type S3Key ¶
type S3Key struct { AccessKey string `yaml:"accessKey"` SecretAccessKey string `yaml:"secretAccessKey"` }
S3Key define credentials for s3 auth
type Server ¶
type Server struct { LogLevel string `yaml:"logLevel"` AccessLog bool `yaml:"accessLogs"` InternalListen string `yaml:"internalListen"` SingleListen string `yaml:"listen"` RequestTimeout int `yaml:"requestTimeout"` LockTimeout int `yaml:"lockTimeout"` Lock *LockCfg `yaml:"lock"` Listen []string `yaml:"listens"` Monitoring string `yaml:"monitoring"` PlaceholderStr string `yaml:"placeholder"` Plugins map[string]interface{} `yaml:"plugins,omitempty"` Cache CacheCfg `yaml:"cache"` MaxFileSize int64 `yaml:"maxFileSize"` Placeholder struct { Buf []byte ContentType string } `yaml:"-"` }
Server configure HTTP server
type Storage ¶
type Storage struct { RootPath string `yaml:"rootPath,omitempty"` // root path for local-* storage Kind string `yaml:"kind"` // type of storage from list ("local", "local-meta", "s3", "http", "b2","noop") Url string `yaml:"url,omitempty"` // Url for http storage Headers map[string]string `yaml:"headers,omitempty"` // request headers for http storage AccessKey string `yaml:"accessKey,omitempty"` // access key for s3 storage SecretAccessKey string `yaml:"secretAccessKey,omitempty"` // SecretAccessKey for s3 storage Region string `yaml:"region,omitempty"` // region for s3 storage Endpoint string `yaml:"endpoint,omitempty"` // endpoint for s3 storage PathPrefix string `yaml:"pathPrefix,omitempty"` // prefix in path for all storage Bucket string `yaml:"bucket"` B2AccountID string `yaml:"b2Account"` // account name for b2 B2ApplicationKey string `yaml:"b2ApplicationKey"` // key for b2 B2ApplicationKeyID string `yaml:"b2ApplicationKeyId"` // key for b2 GoogleConfigJSON string `yaml:"googleConfigJson,omitempty"` // google config json GoogleProjectID string `yaml:"googleProjectId,omitempty"` // google project id GoogleScopes string `yaml:"googleScopes,omitempty"` // google scopes id OracleUsername string `yaml:"oracleUsername,omitempty"` // oracle user name OraclePassword string `yaml:"oraclePassword,omitempty"` // oracle password OracleAuthEndpoint string `yaml:"oracleAuthEndpoint,omitempty"` // oracle auth endpoint SFTPHost string `yaml:"sftpHost"` // host for sftp storage SFTPPort string `yaml:"sftpPort"` // port for sftp storage SFTPUsername string `yaml:"sftpUsername"` // username for sftp storage SFTPPassword string `yaml:"sftpPassword"` // password for sftp storage SFTPPrivateKey string `yaml:"sftpPrivateKey"` // private key for sftp SFTPPrivateKeyPass string `yaml:"sftpPrivateKeypassphrase"` // password for sftp key SFTPHostPublicKey string `yaml:"sftpHostPublicKey"` // sft pubic host key SFTPHostBasePath string `yaml:"sftpBasePath"` // base path for sftp storage AzureAccount string `yaml:"azureAccount,omitempty"` // azure account name AzureKey string `yaml:"azureKey,omitempty"` // azure key HTTPTracing string `yaml:"HTTPTracing,omitempty" default:"false"` Hash string // unique hash for given storage }
Storage contains information about kind of used storage
type StorageTypes ¶
StorageTypes contains map of storage for bucket
func (*StorageTypes) Basic ¶
func (s *StorageTypes) Basic() Storage
Basic return storage that contains originals object
func (*StorageTypes) Get ¶
func (s *StorageTypes) Get(name string) Storage
Get basic method for getting storage by name
func (*StorageTypes) Noop ¶ added in v0.15.0
func (s *StorageTypes) Noop() Storage
func (*StorageTypes) Transform ¶
func (s *StorageTypes) Transform() Storage
Transform return strorage in which we should storage processed objects
type Transform ¶
type Transform struct { Path string `yaml:"path"` ParentStorage string `yaml:"parentStorage"` ParentBucket string `yaml:"parentBucket"` PathRegexp *regexp.Regexp Kind string `yaml:"kind"` Presets map[string]Preset `yaml:"presets"` CheckParent bool `yaml:"checkParent"` ResultKey string `yaml:"resultKey"` TengoPath string `yaml:"tengoPath"` TengoScript *tengo.Compiled }
Transform describe transform for bucket