RGWBucketInfo& bucket_info = source->get_bucket_info();
if (params.part_num) {
+ map<string, bufferlist> src_attrset;
+ for (auto& iter : astate->attrset) {
+ if (boost::algorithm::starts_with(iter.first, RGW_ATTR_CRYPT_PREFIX)) {
+ ldpp_dout(dpp, 4) << "get src crypt attr: " << iter.first << dendl;
+ src_attrset[iter.first] = iter.second;
+ }
+ }
int parts_count = 0;
// use the manifest to redirect to the requested part number
r = get_part_obj_state(dpp, y, store, bucket_info, &source->get_ctx(),
} else {
params.parts_count = parts_count;
}
+
+ for (auto& iter : src_attrset) {
+ ldpp_dout(dpp, 4) << "copy crypt attr: " << iter.first << dendl;
+ if (astate->attrset.find(iter.first) == astate->attrset.end()) {
+ astate->attrset[iter.first] = std::move(iter.second);
+ }
+ }
}
state.obj = astate->obj;