|
|
@ -6,6 +6,7 @@ import ( |
|
|
|
"crypto/x509" |
|
|
|
"fmt" |
|
|
|
"os" |
|
|
|
"regexp" |
|
|
|
"time" |
|
|
|
|
|
|
|
"github.com/seaweedfs/seaweedfs/weed/filer" |
|
|
@ -229,16 +230,20 @@ func (store *MongodbStore) DeleteFolderChildren(ctx context.Context, fullpath ut |
|
|
|
} |
|
|
|
|
|
|
|
func (store *MongodbStore) ListDirectoryPrefixedEntries(ctx context.Context, dirPath util.FullPath, startFileName string, includeStartFile bool, limit int64, prefix string, eachEntryFunc filer.ListEachEntryFunc) (lastFileName string, err error) { |
|
|
|
return lastFileName, filer.ErrUnsupportedListDirectoryPrefixed |
|
|
|
} |
|
|
|
where := bson.M{ |
|
|
|
"directory": string(dirPath), |
|
|
|
} |
|
|
|
|
|
|
|
func (store *MongodbStore) ListDirectoryEntries(ctx context.Context, dirPath util.FullPath, startFileName string, includeStartFile bool, limit int64, eachEntryFunc filer.ListEachEntryFunc) (lastFileName string, err error) { |
|
|
|
var where = bson.M{"directory": string(dirPath), "name": bson.M{"$gt": startFileName}} |
|
|
|
if includeStartFile { |
|
|
|
where["name"] = bson.M{ |
|
|
|
"$gte": startFileName, |
|
|
|
if len(prefix) > 0 { |
|
|
|
where["name"].(bson.M)["$regex"] = "^" + regexp.QuoteMeta(prefix) |
|
|
|
} |
|
|
|
|
|
|
|
if includeStartFile { |
|
|
|
where["name"].(bson.M)["$gte"] = startFileName |
|
|
|
} else { |
|
|
|
where["name"].(bson.M)["$gt"] = startFileName |
|
|
|
} |
|
|
|
|
|
|
|
optLimit := int64(limit) |
|
|
|
opts := &options.FindOptions{Limit: &optLimit, Sort: bson.M{"name": 1}} |
|
|
|
cur, err := store.connect.Database(store.database).Collection(store.collectionName).Find(ctx, where, opts) |
|
|
@ -276,6 +281,10 @@ func (store *MongodbStore) ListDirectoryEntries(ctx context.Context, dirPath uti |
|
|
|
return lastFileName, err |
|
|
|
} |
|
|
|
|
|
|
|
func (store *MongodbStore) ListDirectoryEntries(ctx context.Context, dirPath util.FullPath, startFileName string, includeStartFile bool, limit int64, eachEntryFunc filer.ListEachEntryFunc) (lastFileName string, err error) { |
|
|
|
return store.ListDirectoryPrefixedEntries(ctx, dirPath, startFileName, includeStartFile, limit, "", eachEntryFunc) |
|
|
|
} |
|
|
|
|
|
|
|
func (store *MongodbStore) Shutdown() { |
|
|
|
ctx, _ := context.WithTimeout(context.Background(), 10*time.Second) |
|
|
|
store.connect.Disconnect(ctx) |
|
|
|