From: yuliyang Date: Wed, 16 Oct 2019 07:18:59 +0000 (+0800) Subject: rgw: set correct storage class for post object upload X-Git-Tag: v15.1.0~1144^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=45dbcf35dc8cc647299fc065059c95fa906999d0;p=ceph.git rgw: set correct storage class for post object upload fix https://tracker.ceph.com/issues/42336 Signed-off-by: yuliyang --- diff --git a/src/rgw/rgw_rest_s3.cc b/src/rgw/rgw_rest_s3.cc index b1c75fe8715c..25a01590a50d 100644 --- a/src/rgw/rgw_rest_s3.cc +++ b/src/rgw/rgw_rest_s3.cc @@ -2133,6 +2133,18 @@ int RGWPostObj_ObjStore_S3::get_params() env.add_var("Content-Type", content_type); } + std::string storage_class; + part_str(parts, "x-amz-storage-class", &storage_class); + + if (! storage_class.empty()) { + s->dest_placement.storage_class = storage_class; + if (!store->svc()->zone->get_zone_params().valid_placement(s->dest_placement)) { + ldpp_dout(this, 0) << "NOTICE: invalid dest placement: " << s->dest_placement.to_str() << dendl; + err_msg = "The storage class you specified is not valid"; + return -EINVAL; + } + } + map::iterator piter = parts.upper_bound(RGW_AMZ_META_PREFIX); for (; piter != parts.end(); ++piter) {