]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: S3 Put Bucket Policy should return 204 on success 38623/head
authorMatthew Oliver <moliver@suse.com>
Thu, 14 May 2020 01:31:56 +0000 (11:31 +1000)
committerNathan Cutler <ncutler@suse.com>
Wed, 16 Dec 2020 18:34:58 +0000 (19:34 +0100)
Currently RGW returns a 200 on a successful PUT on a bucket policy but
the S3 api extects a 204, which makes sense as it's a success without
any contect returned:

   https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTpolicy.html

The sample response in the example above is a 204.

This patch checks the op_ret in `RGWPutBucketPolicy::send_response()`
and on a success we turn it to a 204 (or STATUS_NO_CONTENT).

Fixes: https://tracker.ceph.com/issues/45467
Signed-off-by: Matthew Oliver <moliver@suse.com>
(cherry picked from commit 7fddff78c98ef9a3c73581b892c7dfa04b64cdb3)

src/rgw/rgw_op.cc

index 9ca7e1cfb821ff49ccbfc76cfa0bda92f33f0083..5a19feedb10debf86330f855a10e0a5f88c11e12 100644 (file)
@@ -7500,6 +7500,10 @@ void RGWDefaultResponseOp::send_response() {
 
 void RGWPutBucketPolicy::send_response()
 {
+  if (!op_ret) {
+    /* A successful Put Bucket Policy should return a 204 on success */
+    op_ret = STATUS_NO_CONTENT;
+  }
   if (op_ret) {
     set_req_state_err(s, op_ret);
   }