diff --git a/backend/local.go b/backend/local.go index d266c506c..0a81f1e90 100644 --- a/backend/local.go +++ b/backend/local.go @@ -167,14 +167,14 @@ func (b *Local) dirname(t Type, id ID) string { case Data: n = dataPath if id != nil { - n = filepath.Join(dataPath, fmt.Sprintf("%02x", id[0]), fmt.Sprintf("%02x", id[1])) + n = filepath.Join(dataPath, fmt.Sprintf("%02x", id[0])) } case Snapshot: n = snapshotPath case Tree: n = treePath if id != nil { - n = filepath.Join(treePath, fmt.Sprintf("%02x", id[0]), fmt.Sprintf("%02x", id[1])) + n = filepath.Join(treePath, fmt.Sprintf("%02x", id[0])) } case Map: n = mapPath @@ -289,7 +289,7 @@ func (b *Local) List(t Type) (IDs, error) { // TODO: use os.Open() and d.Readdirnames() instead of Glob() var pattern string if t == Data || t == Tree { - pattern = filepath.Join(b.dirname(t, nil), "*", "*", "*") + pattern = filepath.Join(b.dirname(t, nil), "*", "*") } else { pattern = filepath.Join(b.dirname(t, nil), "*") } diff --git a/backend/sftp.go b/backend/sftp.go index a189076b7..8184414d6 100644 --- a/backend/sftp.go +++ b/backend/sftp.go @@ -275,14 +275,14 @@ func (r *SFTP) dirname(t Type, id ID) string { case Data: n = dataPath if id != nil { - n = filepath.Join(dataPath, fmt.Sprintf("%02x", id[0]), fmt.Sprintf("%02x", id[1])) + n = filepath.Join(dataPath, fmt.Sprintf("%02x", id[0])) } case Snapshot: n = snapshotPath case Tree: n = treePath if id != nil { - n = filepath.Join(treePath, fmt.Sprintf("%02x", id[0]), fmt.Sprintf("%02x", id[1])) + n = filepath.Join(treePath, fmt.Sprintf("%02x", id[0])) } case Map: n = mapPath @@ -408,23 +408,15 @@ func (r *SFTP) List(t Type) (IDs, error) { return nil, err } - for _, dir1 := range list1 { - // read second level - list2, err := r.c.ReadDir(filepath.Join(basedir, dir1.Name())) + // read files + for _, dir := range list1 { + entries, err := r.c.ReadDir(filepath.Join(basedir, dir.Name())) if err != nil { return nil, err } - // read files - for _, dir2 := range list2 { - entries, err := r.c.ReadDir(filepath.Join(basedir, dir1.Name(), dir2.Name())) - if err != nil { - return nil, err - } - - for _, entry := range entries { - list = append(list, entry) - } + for _, entry := range entries { + list = append(list, entry) } } } else {