mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2025-07-16 07:09:15 +08:00
filer: delete specific tags
fix https://github.com/chrislusf/seaweedfs/issues/2041
This commit is contained in:
parent
e87e6ef33c
commit
e24ba2aadc
@ -78,11 +78,27 @@ func (fs *FilerServer) DeleteTaggingHandler(w http.ResponseWriter, r *http.Reque
|
|||||||
existingEntry.Extended = make(map[string][]byte)
|
existingEntry.Extended = make(map[string][]byte)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// parse out tags to be deleted
|
||||||
|
toDelete := strings.Split(r.URL.Query().Get("tagging"), ",")
|
||||||
|
deletions := make(map[string]struct{})
|
||||||
|
for _, deletion := range toDelete {
|
||||||
|
deletions[deletion] = struct{}{}
|
||||||
|
}
|
||||||
|
|
||||||
|
// delete all tags or specific tags
|
||||||
hasDeletion := false
|
hasDeletion := false
|
||||||
for header, _ := range existingEntry.Extended {
|
for header, _ := range existingEntry.Extended {
|
||||||
if strings.HasPrefix(header, needle.PairNamePrefix) {
|
if strings.HasPrefix(header, needle.PairNamePrefix) {
|
||||||
delete(existingEntry.Extended, header)
|
if len(deletions) == 0 {
|
||||||
hasDeletion = true
|
delete(existingEntry.Extended, header)
|
||||||
|
hasDeletion = true
|
||||||
|
} else {
|
||||||
|
tag := header[len(needle.PairNamePrefix):]
|
||||||
|
if _, found := deletions[tag]; found {
|
||||||
|
delete(existingEntry.Extended, header)
|
||||||
|
hasDeletion = true
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user