]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw/sse-s3: fix bucket encryption of multipart upload 49409/head
authorTongliang Deng <dengtongliang@gmail.com>
Tue, 13 Dec 2022 06:42:34 +0000 (06:42 +0000)
committerdengtongliang <dengtongliang@sensetime.com>
Thu, 30 Mar 2023 02:13:15 +0000 (10:13 +0800)
Multipart upload missing encryption when we have bucket encryption
policy. Fix it by fetching bucket encryption policy and resolving
defaults at multipart init op.

Fixes: https://tracker.ceph.com/issues/59218
Signed-off-by: Tongliang Deng <dengtongliang@gmail.com>
src/rgw/rgw_op.cc
src/rgw/rgw_rest_s3.cc

index 29552560b27cb82dafa109f960a0a5dc927bfe50..d898c78f7ca50abbfe3b347fe2cc1d66498fd447 100644 (file)
@@ -6225,8 +6225,10 @@ void RGWInitMultipart::execute(optional_yield y)
   bufferlist aclbl, tracebl;
   rgw::sal::Attrs attrs;
 
-  if (get_params(y) < 0)
+  op_ret = get_params(y);
+  if (op_ret < 0) {
     return;
+  }
 
   if (rgw::sal::Object::empty(s->object.get()))
     return;
index 6a2ec4a0b9f6eff1618f9e202aa5528e66b98287..65dc027372bd84fab84655068c41c1f41e6216b1 100644 (file)
@@ -3876,10 +3876,18 @@ void RGWSetRequestPayment_ObjStore_S3::send_response()
 
 int RGWInitMultipart_ObjStore_S3::get_params(optional_yield y)
 {
+  int ret;
+
+  ret = get_encryption_defaults(s);
+  if (ret < 0) {
+    ldpp_dout(this, 5) << __func__ << "(): get_encryption_defaults() returned ret=" << ret << dendl;
+    return ret;
+  }
+
   RGWAccessControlPolicy_S3 s3policy(s->cct);
-  op_ret = create_s3_policy(s, driver, s3policy, s->owner);
-  if (op_ret < 0)
-    return op_ret;
+  ret = create_s3_policy(s, driver, s3policy, s->owner);
+  if (ret < 0)
+    return ret;
 
   policy = s3policy;