api: DeleteObject should always return 204. (#1645)

Fixes #1643
master
Harshavardhana 9 years ago
parent e03ebfd13b
commit 5b29cefd40
  1. 9
      object-handlers.go
  2. 9
      server_test.go

@ -936,10 +936,9 @@ func (api objectAPIHandlers) DeleteObjectHandler(w http.ResponseWriter, r *http.
return return
} }
} }
if err := api.ObjectAPI.DeleteObject(bucket, object); err != nil { /// http://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectDELETE.html
errorIf(err, "DeleteObject failed.", nil) /// Ignore delete object errors, since we are suppposed to reply
writeErrorResponse(w, r, toAPIErrorCode(err), r.URL.Path) /// only 204.
return api.ObjectAPI.DeleteObject(bucket, object)
}
writeSuccessNoContent(w) writeSuccessNoContent(w)
} }

@ -351,6 +351,7 @@ func (s *MyAPISuite) TestDeleteBucketNotEmpty(c *C) {
c.Assert(response.StatusCode, Equals, http.StatusConflict) c.Assert(response.StatusCode, Equals, http.StatusConflict)
} }
// Tests delete object responses and success.
func (s *MyAPISuite) TestDeleteObject(c *C) { func (s *MyAPISuite) TestDeleteObject(c *C) {
request, err := s.newRequest("PUT", testAPIFSCacheServer.URL+"/deletebucketobject", 0, nil) request, err := s.newRequest("PUT", testAPIFSCacheServer.URL+"/deletebucketobject", 0, nil)
c.Assert(err, IsNil) c.Assert(err, IsNil)
@ -374,6 +375,14 @@ func (s *MyAPISuite) TestDeleteObject(c *C) {
response, err = client.Do(request) response, err = client.Do(request)
c.Assert(err, IsNil) c.Assert(err, IsNil)
c.Assert(response.StatusCode, Equals, http.StatusNoContent) c.Assert(response.StatusCode, Equals, http.StatusNoContent)
// Delete non existant object should return http.StatusNoContent.
request, err = s.newRequest("DELETE", testAPIFSCacheServer.URL+"/deletebucketobject/myobject1", 0, nil)
c.Assert(err, IsNil)
client = http.Client{}
response, err = client.Do(request)
c.Assert(err, IsNil)
c.Assert(response.StatusCode, Equals, http.StatusNoContent)
} }
func (s *MyAPISuite) TestNonExistantBucket(c *C) { func (s *MyAPISuite) TestNonExistantBucket(c *C) {

Loading…
Cancel
Save