aboutsummaryrefslogtreecommitdiff
path: root/weed/filer2/filer.go
diff options
context:
space:
mode:
authorChris Lu <chrislusf@users.noreply.github.com>2020-08-31 10:22:14 -0700
committerGitHub <noreply@github.com>2020-08-31 10:22:14 -0700
commitedb9d65e056e245731769bbefaa722e2587cdd98 (patch)
treeb0d61c25d97805ba44e78725c515c880c3efb211 /weed/filer2/filer.go
parent408e339c53b9b6626e81f1c3f0f2399494bf4ce6 (diff)
parent9a195bebfd6c803161d07ca80b227dd058719aa5 (diff)
downloadseaweedfs-edb9d65e056e245731769bbefaa722e2587cdd98.tar.xz
seaweedfs-edb9d65e056e245731769bbefaa722e2587cdd98.zip
Merge pull request #1431 from kmlebedev/wip-prefix-search
Wip prefix search
Diffstat (limited to 'weed/filer2/filer.go')
-rw-r--r--weed/filer2/filer.go16
1 files changed, 9 insertions, 7 deletions
diff --git a/weed/filer2/filer.go b/weed/filer2/filer.go
index a3b7709ad..78e27ed08 100644
--- a/weed/filer2/filer.go
+++ b/weed/filer2/filer.go
@@ -2,6 +2,7 @@ package filer2
import (
"context"
+ "errors"
"fmt"
"os"
"strings"
@@ -22,8 +23,9 @@ const (
)
var (
- OS_UID = uint32(os.Getuid())
- OS_GID = uint32(os.Getgid())
+ OS_UID = uint32(os.Getuid())
+ OS_GID = uint32(os.Getgid())
+ ErrUnsupportedListDirectoryPrefixed = errors.New("UNSUPPORTED")
)
type Filer struct {
@@ -246,15 +248,15 @@ func (f *Filer) FindEntry(ctx context.Context, p util.FullPath) (entry *Entry, e
}
-func (f *Filer) ListDirectoryEntries(ctx context.Context, p util.FullPath, startFileName string, inclusive bool, limit int) ([]*Entry, error) {
+func (f *Filer) ListDirectoryEntries(ctx context.Context, p util.FullPath, startFileName string, inclusive bool, limit int, prefix string) ([]*Entry, error) {
if strings.HasSuffix(string(p), "/") && len(p) > 1 {
p = p[0 : len(p)-1]
}
var makeupEntries []*Entry
- entries, expiredCount, lastFileName, err := f.doListDirectoryEntries(ctx, p, startFileName, inclusive, limit)
+ entries, expiredCount, lastFileName, err := f.doListDirectoryEntries(ctx, p, startFileName, inclusive, limit, prefix)
for expiredCount > 0 && err == nil {
- makeupEntries, expiredCount, lastFileName, err = f.doListDirectoryEntries(ctx, p, lastFileName, false, expiredCount)
+ makeupEntries, expiredCount, lastFileName, err = f.doListDirectoryEntries(ctx, p, lastFileName, false, expiredCount, prefix)
if err == nil {
entries = append(entries, makeupEntries...)
}
@@ -263,8 +265,8 @@ func (f *Filer) ListDirectoryEntries(ctx context.Context, p util.FullPath, start
return entries, err
}
-func (f *Filer) doListDirectoryEntries(ctx context.Context, p util.FullPath, startFileName string, inclusive bool, limit int) (entries []*Entry, expiredCount int, lastFileName string, err error) {
- listedEntries, listErr := f.Store.ListDirectoryEntries(ctx, p, startFileName, inclusive, limit)
+func (f *Filer) doListDirectoryEntries(ctx context.Context, p util.FullPath, startFileName string, inclusive bool, limit int, prefix string) (entries []*Entry, expiredCount int, lastFileName string, err error) {
+ listedEntries, listErr := f.Store.ListDirectoryPrefixedEntries(ctx, p, startFileName, inclusive, limit, prefix)
if listErr != nil {
return listedEntries, expiredCount, "", listErr
}