Listen bucket notification for multiple prefixes/suffixes (#2911)

* Listen bucket notification for multiple prefixes/suffixes

* After review fixes
This commit is contained in:
Mateusz Gajewski
2016-10-12 20:02:15 +02:00
committed by Harshavardhana
parent 6199aa0707
commit 73982c8cb6
5 changed files with 74 additions and 19 deletions
+13 -5
View File
@@ -250,9 +250,15 @@ func (api objectAPIHandlers) ListenBucketNotificationHandler(w http.ResponseWrit
bucket := vars["bucket"]
// Parse listen bucket notification resources.
prefix, suffix, events := getListenBucketNotificationResources(r.URL.Query())
if !IsValidObjectPrefix(prefix) || !IsValidObjectPrefix(suffix) {
writeErrorResponse(w, r, ErrFilterValueInvalid, r.URL.Path)
prefixes, suffixes, events := getListenBucketNotificationResources(r.URL.Query())
if err := validateFilterValues(prefixes); err != ErrNone {
writeErrorResponse(w, r, err, r.URL.Path)
return
}
if err := validateFilterValues(suffixes); err != ErrNone {
writeErrorResponse(w, r, err, r.URL.Path)
return
}
@@ -279,13 +285,15 @@ func (api objectAPIHandlers) ListenBucketNotificationHandler(w http.ResponseWrit
globalMinioAddr,
)
var filterRules []filterRule
if prefix != "" {
for _, prefix := range prefixes {
filterRules = append(filterRules, filterRule{
Name: "prefix",
Value: prefix,
})
}
if suffix != "" {
for _, suffix := range suffixes {
filterRules = append(filterRules, filterRule{
Name: "suffix",
Value: suffix,