diff --git a/cmd/bucket-notification-handlers.go b/cmd/bucket-notification-handlers.go index 79de4f4d0..cfd83891e 100644 --- a/cmd/bucket-notification-handlers.go +++ b/cmd/bucket-notification-handlers.go @@ -228,6 +228,7 @@ func (api objectAPIHandlers) ListenBucketNotificationHandler(w http.ResponseWrit bucketName := vars["bucket"] values := r.URL.Query() + values.Set(peerRESTListenBucket, bucketName) var prefix string if len(values[peerRESTListenPrefix]) > 1 { @@ -295,6 +296,9 @@ func (api objectAPIHandlers) ListenBucketNotificationHandler(w http.ResponseWrit if !ok { return false } + if ev.S3.Bucket.Name != values.Get(peerRESTListenBucket) { + return false + } objectName, uerr := url.QueryUnescape(ev.S3.Object.Key) if uerr != nil { objectName = ev.S3.Object.Key @@ -306,7 +310,7 @@ func (api objectAPIHandlers) ListenBucketNotificationHandler(w http.ResponseWrit if peer == nil { continue } - peer.Listen(listenCh, doneCh, r.URL.Query()) + peer.Listen(listenCh, doneCh, values) } keepAliveTicker := time.NewTicker(500 * time.Millisecond) diff --git a/cmd/peer-rest-common.go b/cmd/peer-rest-common.go index ce5761019..2b62a5125 100644 --- a/cmd/peer-rest-common.go +++ b/cmd/peer-rest-common.go @@ -82,6 +82,7 @@ const ( peerRESTTraceAll = "all" peerRESTTraceErr = "err" + peerRESTListenBucket = "bucket" peerRESTListenPrefix = "prefix" peerRESTListenSuffix = "suffix" peerRESTListenEvents = "events" diff --git a/cmd/peer-rest-server.go b/cmd/peer-rest-server.go index 372413c50..64b7a0fff 100644 --- a/cmd/peer-rest-server.go +++ b/cmd/peer-rest-server.go @@ -978,6 +978,9 @@ func (s *peerRESTServer) ListenHandler(w http.ResponseWriter, r *http.Request) { if !ok { return false } + if ev.S3.Bucket.Name != values.Get(peerRESTListenBucket) { + return false + } objectName, uerr := url.QueryUnescape(ev.S3.Object.Key) if uerr != nil { objectName = ev.S3.Object.Key