Documentation ¶
Index ¶
- Constants
- Variables
- func MappingElection(provider Storer, item []byte, req *http.Request, validator *Revalidator, ...) (resultFresh *http.Response, resultStale *http.Response, e error)
- func MappingUpdater(key string, item []byte, logger Logger, now, freshTime, staleTime time.Time, ...) (val []byte, e error)
- func RegisterStorage(s Storer)
- func ResetRegisteredStorages()
- func ValidateETagFromHeader(etag string, validator *Revalidator)
- type CacheProvider
- type Configuration
- type KeyIndex
- func (*KeyIndex) Descriptor() ([]byte, []int)deprecated
- func (x *KeyIndex) GetEtag() string
- func (x *KeyIndex) GetFreshTime() *timestamppb.Timestamp
- func (x *KeyIndex) GetRealKey() string
- func (x *KeyIndex) GetStaleTime() *timestamppb.Timestamp
- func (x *KeyIndex) GetStoredAt() *timestamppb.Timestamp
- func (x *KeyIndex) GetVariedHeaders() map[string]*KeyIndexStringList
- func (*KeyIndex) ProtoMessage()
- func (x *KeyIndex) ProtoReflect() protoreflect.Message
- func (x *KeyIndex) Reset()
- func (x *KeyIndex) String() string
- type KeyIndexStringList
- func (*KeyIndexStringList) Descriptor() ([]byte, []int)deprecated
- func (x *KeyIndexStringList) GetHeaderValue() []string
- func (*KeyIndexStringList) ProtoMessage()
- func (x *KeyIndexStringList) ProtoReflect() protoreflect.Message
- func (x *KeyIndexStringList) Reset()
- func (x *KeyIndexStringList) String() string
- type Logger
- type Revalidator
- type StorageMapper
- type Storer
Constants ¶
View Source
const MappingKeyPrefix = "IDX_"
Variables ¶
View Source
var File_storage_proto protoreflect.FileDescriptor
Functions ¶
func MappingElection ¶
func MappingUpdater ¶
func RegisterStorage ¶
func RegisterStorage(s Storer)
func ResetRegisteredStorages ¶ added in v0.0.2
func ResetRegisteredStorages()
func ValidateETagFromHeader ¶
func ValidateETagFromHeader(etag string, validator *Revalidator)
Types ¶
type CacheProvider ¶
type CacheProvider struct { // URL to connect to the storage system. URL string `json:"url" yaml:"url"` // Path to the configuration file. Path string `json:"path" yaml:"path"` // Declare the cache provider directly in the Souin configuration. Configuration interface{} `json:"configuration" yaml:"configuration"` }
CacheProvider config.
type Configuration ¶
type Configuration struct { Provider CacheProvider `json:"provider"` Stale time.Duration `json:"stale"` }
type KeyIndex ¶ added in v0.0.6
type KeyIndex struct { StoredAt *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=stored_at,json=storedAt,proto3" json:"stored_at,omitempty"` FreshTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=fresh_time,json=freshTime,proto3" json:"fresh_time,omitempty"` StaleTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=stale_time,json=staleTime,proto3" json:"stale_time,omitempty"` VariedHeaders map[string]*KeyIndexStringList `` /* 188-byte string literal not displayed */ Etag string `protobuf:"bytes,5,opt,name=etag,proto3" json:"etag,omitempty"` RealKey string `protobuf:"bytes,6,opt,name=real_key,json=realKey,proto3" json:"real_key,omitempty"` // contains filtered or unexported fields }
func (*KeyIndex) Descriptor
deprecated
added in
v0.0.6
func (*KeyIndex) GetFreshTime ¶ added in v0.0.6
func (x *KeyIndex) GetFreshTime() *timestamppb.Timestamp
func (*KeyIndex) GetRealKey ¶ added in v0.0.6
func (*KeyIndex) GetStaleTime ¶ added in v0.0.6
func (x *KeyIndex) GetStaleTime() *timestamppb.Timestamp
func (*KeyIndex) GetStoredAt ¶ added in v0.0.6
func (x *KeyIndex) GetStoredAt() *timestamppb.Timestamp
func (*KeyIndex) GetVariedHeaders ¶ added in v0.0.6
func (x *KeyIndex) GetVariedHeaders() map[string]*KeyIndexStringList
func (*KeyIndex) ProtoMessage ¶ added in v0.0.6
func (*KeyIndex) ProtoMessage()
func (*KeyIndex) ProtoReflect ¶ added in v0.0.6
func (x *KeyIndex) ProtoReflect() protoreflect.Message
type KeyIndexStringList ¶ added in v0.0.6
type KeyIndexStringList struct { HeaderValue []string `protobuf:"bytes,1,rep,name=header_value,json=headerValue,proto3" json:"header_value,omitempty"` // contains filtered or unexported fields }
func (*KeyIndexStringList) Descriptor
deprecated
added in
v0.0.6
func (*KeyIndexStringList) Descriptor() ([]byte, []int)
Deprecated: Use KeyIndexStringList.ProtoReflect.Descriptor instead.
func (*KeyIndexStringList) GetHeaderValue ¶ added in v0.0.6
func (x *KeyIndexStringList) GetHeaderValue() []string
func (*KeyIndexStringList) ProtoMessage ¶ added in v0.0.6
func (*KeyIndexStringList) ProtoMessage()
func (*KeyIndexStringList) ProtoReflect ¶ added in v0.0.6
func (x *KeyIndexStringList) ProtoReflect() protoreflect.Message
func (*KeyIndexStringList) Reset ¶ added in v0.0.6
func (x *KeyIndexStringList) Reset()
func (*KeyIndexStringList) String ¶ added in v0.0.6
func (x *KeyIndexStringList) String() string
type Logger ¶ added in v0.0.6
type Logger interface { Debug(args ...interface{}) Info(args ...interface{}) Warn(args ...interface{}) Error(args ...interface{}) DPanic(args ...interface{}) Panic(args ...interface{}) Fatal(args ...interface{}) Debugf(template string, args ...interface{}) Infof(template string, args ...interface{}) Warnf(template string, args ...interface{}) Errorf(template string, args ...interface{}) DPanicf(template string, args ...interface{}) Panicf(template string, args ...interface{}) Fatalf(template string, args ...interface{}) }
type Revalidator ¶
type Revalidator struct { Matched bool IfNoneMatchPresent bool IfMatchPresent bool IfModifiedSincePresent bool IfUnmodifiedSincePresent bool IfUnmotModifiedSincePresent bool NeedRevalidation bool NotModified bool IfModifiedSince time.Time IfUnmodifiedSince time.Time IfNoneMatch []string IfMatch []string RequestETags []string ResponseETag string }
type StorageMapper ¶
type StorageMapper struct { Mapping map[string]*KeyIndex `` /* 155-byte string literal not displayed */ // contains filtered or unexported fields }
func DecodeMapping ¶
func DecodeMapping(item []byte) (*StorageMapper, error)
func (*StorageMapper) Descriptor
deprecated
added in
v0.0.6
func (*StorageMapper) Descriptor() ([]byte, []int)
Deprecated: Use StorageMapper.ProtoReflect.Descriptor instead.
func (*StorageMapper) GetMapping ¶ added in v0.0.6
func (x *StorageMapper) GetMapping() map[string]*KeyIndex
func (*StorageMapper) ProtoMessage ¶ added in v0.0.6
func (*StorageMapper) ProtoMessage()
func (*StorageMapper) ProtoReflect ¶ added in v0.0.6
func (x *StorageMapper) ProtoReflect() protoreflect.Message
func (*StorageMapper) Reset ¶ added in v0.0.6
func (x *StorageMapper) Reset()
func (*StorageMapper) String ¶ added in v0.0.6
func (x *StorageMapper) String() string
type Storer ¶
type Storer interface { MapKeys(prefix string) map[string]string ListKeys() []string Get(key string) []byte Set(key string, value []byte, duration time.Duration) error Delete(key string) DeleteMany(key string) Init() error Name() string Uuid() string Reset() error // Multi level storer to handle fresh/stale at once GetMultiLevel(key string, req *http.Request, validator *Revalidator) (fresh *http.Response, stale *http.Response) SetMultiLevel(baseKey, variedKey string, value []byte, variedHeaders http.Header, etag string, duration time.Duration, realKey string) error }
func GetRegisteredStorer ¶
func GetRegisteredStorers ¶
func GetRegisteredStorers() []Storer
Click to show internal directories.
Click to hide internal directories.