aboutsummaryrefslogtreecommitdiff
path: root/weed/filer
diff options
context:
space:
mode:
Diffstat (limited to 'weed/filer')
-rw-r--r--weed/filer/elastic/v7/elastic_store.go12
1 files changed, 10 insertions, 2 deletions
diff --git a/weed/filer/elastic/v7/elastic_store.go b/weed/filer/elastic/v7/elastic_store.go
index 7bd34852f..1832ddb73 100644
--- a/weed/filer/elastic/v7/elastic_store.go
+++ b/weed/filer/elastic/v7/elastic_store.go
@@ -159,8 +159,16 @@ func (store *ElasticStore) FindEntry(ctx context.Context, fullpath weed_util.Ful
func (store *ElasticStore) DeleteEntry(ctx context.Context, fullpath weed_util.FullPath) (err error) {
index := getIndex(fullpath, false)
id := weed_util.Md5String([]byte(fullpath))
- if strings.Count(string(fullpath), "/") == 1 {
- return store.deleteIndex(ctx, index)
+ strFullpath := string(fullpath)
+
+ // A top-level subdirectory refers to an Elasticsearch index.
+ // If we delete an entry at the top level, we should attempt to delete the corresponding Elasticsearch index.
+ if strings.Count(strFullpath, "/") == 1 {
+ entry, err2 := store.FindEntry(ctx, fullpath)
+ if err2 == nil && entry.IsDirectory() {
+ bucketIndex := indexPrefix + strFullpath[1:]
+ store.deleteIndex(ctx, bucketIndex)
+ }
}
return store.deleteEntry(ctx, index, id)
}