From 99c63552e79fcb290285c614d2e5eea9ebe8175c Mon Sep 17 00:00:00 2001 From: Tongliang Deng Date: Tue, 13 Dec 2022 06:42:34 +0000 Subject: [PATCH] rgw/sse-s3: fix bucket encryption of multipart upload 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 (cherry picked from commit 6d9e4f7924c6149d23919ef82bc09406e1290164) --- src/rgw/rgw_op.cc | 4 +++- src/rgw/rgw_rest_s3.cc | 14 +++++++++++--- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/rgw/rgw_op.cc b/src/rgw/rgw_op.cc index 21b7737f66f0..ea396e20b355 100644 --- a/src/rgw/rgw_op.cc +++ b/src/rgw/rgw_op.cc @@ -6245,8 +6245,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; diff --git a/src/rgw/rgw_rest_s3.cc b/src/rgw/rgw_rest_s3.cc index ccb8a397aec2..f8606932bb6e 100644 --- a/src/rgw/rgw_rest_s3.cc +++ b/src/rgw/rgw_rest_s3.cc @@ -3886,10 +3886,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; -- 2.47.3