switch to config file and implement src path filter
This commit is contained in:
parent
055e9db8e2
commit
a6b9602821
30 changed files with 11907 additions and 60 deletions
23
pkg/fs/fs.go
23
pkg/fs/fs.go
|
|
@ -3,6 +3,7 @@
|
|||
package fs
|
||||
|
||||
import (
|
||||
"cachefs/pkg/config"
|
||||
"cachefs/pkg/provider"
|
||||
"cachefs/pkg/provider/parse"
|
||||
"context"
|
||||
|
|
@ -12,6 +13,7 @@ import (
|
|||
stdfs "io/fs"
|
||||
"net/http"
|
||||
"os"
|
||||
"regexp"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
|
|
@ -33,7 +35,22 @@ type FS struct {
|
|||
ph *PreloadHandler
|
||||
}
|
||||
|
||||
func NewFS(quota int64, max int, src, srckey, dst, dstkey, metadata string, block bool, log logr.Logger) (fs *FS, err error) {
|
||||
func NewFSFromConfig(cfg *config.Config, log logr.Logger) (fs *FS, err error) {
|
||||
c := cfg.Cache
|
||||
return NewFS(
|
||||
c.Quota,
|
||||
c.Preloads,
|
||||
c.Src.Path,
|
||||
c.Src.Key,
|
||||
c.Dst.Path,
|
||||
c.Dst.Key,
|
||||
c.Metadata,
|
||||
cfg.REPath,
|
||||
*c.BlockSFTP,
|
||||
log,
|
||||
)
|
||||
}
|
||||
func NewFS(quota int64, max int, src, srckey, dst, dstkey, metadata string, re *regexp.Regexp, block bool, log logr.Logger) (fs *FS, err error) {
|
||||
if src == dst {
|
||||
return nil, errors.New("src and dst path can not be equal")
|
||||
}
|
||||
|
|
@ -52,11 +69,11 @@ func NewFS(quota int64, max int, src, srckey, dst, dstkey, metadata string, bloc
|
|||
}
|
||||
log.V(2).Info("using destination encryption")
|
||||
}
|
||||
srcfs, err := parse.FS(src, srck, block)
|
||||
srcfs, err := parse.FS(src, srck, re, block)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("srcfs: %w", err)
|
||||
}
|
||||
dstfs, err := parse.FS(dst, dstk, block)
|
||||
dstfs, err := parse.FS(dst, dstk, nil, block)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("dstfs: %w", err)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue