Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var DefaultServerConfig = Server{":8081", ":8080", 10, 70, 3}
DefaultServerConfig contain mort default config for server. useful for tests purpose
Functions ¶
func RegisterTransformKind ¶ added in v0.2.0
func RegisterTransformKind(kind string)
Types ¶
type Bucket ¶
type Bucket struct {
Transform *Transform `yaml:"transform,omitempty"`
Storages StorageTypes `yaml:"storages"`
Keys []S3Key `yaml:"keys"`
Name string
}
Bucket describe single bucket entry in config
type Config ¶
type Config struct {
Buckets map[string]Bucket `yaml:"buckets"`
Headers []HeaderYaml `yaml:"headers"`
Server Server `yaml:"server"`
// 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 HeaderYaml ¶
type HeaderYaml struct {
StatusCodes []int `yaml:"statusCodes"`
Values map[string]string `yaml:"values"`
}
HeaderYaml allow you to override response headers
type Preset ¶
type Preset struct {
Quality int `yaml:"quality"`
Format string `yaml:"format"`
Filters struct {
Thumbnail *struct {
Width int `yaml:"width"`
Height int `yaml:"height"`
Mode string `yaml:"mode"`
} `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"`
} `yaml:"crop,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"`
} `yaml:"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 {
DebugListen string `yaml:"debugListen"`
Listen string `yaml:"listen"`
CacheSize int64 `yaml:"cacheSize"`
RequestTimeout int `yaml:"requestTimeout"`
QueueLen int `yaml:"queueLen"`
}
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", "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"`
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) 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"`
}
Transform describe transform for bucket