diff --git a/rclone.go b/rclone.go index 3d4648e..19d73a8 100755 --- a/rclone.go +++ b/rclone.go @@ -35,8 +35,11 @@ func NewRClone(rclone string, ns ...string) (*RClone, error) { } func (rc *RClone) Get(key string, ns ...string) ([]byte, error) { - namespace := resolveNamespace(ns) - namespace = path.Join(rc.ns, namespace) + namespace := rc.ns + if len(ns) > 0 { + namespace = path.Join(rc.ns, resolveNamespace(ns)) + } + key = path.Join(namespace, key) f, err := fs.NewFs(path.Dir(key)) if err != nil { @@ -57,8 +60,11 @@ func (rc *RClone) Set(key string, value []byte, ns ...string) error { if len(value) == 0 { return rc.Del(key, ns...) } - namespace := resolveNamespace(ns) - namespace = path.Join(rc.ns, namespace) + namespace := rc.ns + if len(ns) > 0 { + namespace = path.Join(rc.ns, resolveNamespace(ns)) + } + key = path.Join(namespace, key) f, err := fs.NewFs(path.Dir(key)) if err != nil { @@ -70,8 +76,11 @@ func (rc *RClone) Set(key string, value []byte, ns ...string) error { } func (rc *RClone) Del(key string, ns ...string) error { - namespace := resolveNamespace(ns) - namespace = path.Join(rc.ns, namespace) + namespace := rc.ns + if len(ns) > 0 { + namespace = path.Join(rc.ns, resolveNamespace(ns)) + } + key = path.Join(namespace, key) f, err := fs.NewFs(path.Dir(key)) if err != nil {