continued work on encryption
This commit is contained in:
parent
4e1d5b36b2
commit
880e2f06b3
14 changed files with 362 additions and 39 deletions
|
|
@ -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)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue