diff --git a/files.go b/files.go index fe2136d..6209d87 100755 --- a/files.go +++ b/files.go @@ -70,11 +70,23 @@ func (b *Files) Set(key string, value []byte, ns ...string) error { log.Println("files.Set", ns, key, "to", len(value), value == nil) r := bytes.NewReader(value) if value == nil { - r = nil + return b.Del(key, ns...) } return b.SetStream(key, r, ns...) } +func (b *Files) Del(key string, ns ...string) error { + log.Println("files.Del", ns, key) + namespace := resolve.Namespace(ns) + dir := path.Join(b.root, namespace) + path := path.Join(dir, key) + err := os.Remove(path) + if os.IsNotExist(err) { + err = nil + } + return err +} + func (b *Files) SetStream(key string, r io.Reader, ns ...string) error { log.Println("files.SetStream", ns, key, "to", r, r == nil) namespace := resolve.Namespace(ns)