continued work on encryption

This commit is contained in:
ston1th 2022-04-07 00:54:13 +02:00
commit 880e2f06b3
14 changed files with 362 additions and 39 deletions

View file

@ -20,7 +20,23 @@ var (
ErrUnsupportedScheme = errors.New("unsupported scheme")
)
func FS(url string, key []byte) (provider.FS, error) {
func TryParse(url string) error {
u, err := neturl.Parse(url)
if err != nil {
return err
}
if !filepath.IsAbs(u.Path) {
return ErrPathNotAbsolute
}
switch u.Scheme {
case "file", "sftp":
default:
return fmt.Errorf("%w: %s", ErrUnsupportedScheme, u.Scheme)
}
return nil
}
func FS(url string, key []byte, block bool) (provider.FS, error) {
u, err := neturl.Parse(url)
if err != nil {
return nil, err
@ -33,7 +49,7 @@ func FS(url string, key []byte) (provider.FS, error) {
case "file":
fs, err = os.NewFS(u.Path)
case "sftp":
fs, err = sftp.NewFS(u, klogr.New().WithName("sftp"))
fs, err = sftp.NewFS(u, block, klogr.New().WithName("sftp"))
default:
return nil, fmt.Errorf("%w: %s", ErrUnsupportedScheme, u.Scheme)
}