diff --git a/web-definitions.go b/web-definitions.go index ff245e6b7..44de8ecb0 100644 --- a/web-definitions.go +++ b/web-definitions.go @@ -52,6 +52,13 @@ type GetObjectURLArgs struct { ObjectName string `json:"objectName"` } +// RemoveObjectArgs - args to remove an object +type RemoveObjectArgs struct { + TargetHost string `json:"targetHost"` + BucketName string `json:"bucketName"` + ObjectName string `json:"objectName"` +} + // BucketInfo container for list buckets metadata. type BucketInfo struct { // The name of the bucket. diff --git a/web-handlers.go b/web-handlers.go index eedd90387..169bedd7b 100644 --- a/web-handlers.go +++ b/web-handlers.go @@ -214,6 +214,20 @@ func (web *WebAPI) GetObjectURL(r *http.Request, args *GetObjectURLArgs, reply * return nil } +// RemoveObject - removes an object. +func (web *WebAPI) RemoveObject(r *http.Request, args *RemoveObjectArgs, reply *int) error { + if !isAuthenticated(r) { + return errUnAuthorizedRequest + } + + e := web.Client.RemoveObject(args.BucketName, args.ObjectName) + if e != nil { + return e + } + *reply = 0 + return nil +} + // Login - user login handler. func (web *WebAPI) Login(r *http.Request, args *LoginArgs, reply *AuthToken) error { jwt := InitJWT()