if (!multipart) {
processor = new RGWPutObjProcessor_Atomic(obj_ctx, bucket_owner, s->bucket, s->object.name, part_size, s->req_id, s->bucket_info.versioning_enabled());
((RGWPutObjProcessor_Atomic *)processor)->set_olh_epoch(olh_epoch);
+ ((RGWPutObjProcessor_Atomic *)processor)->set_version_id(version_id);
} else {
processor = new RGWPutObjProcessor_Multipart(obj_ctx, bucket_owner, part_size, s);
}
head_obj.init(bucket, obj_str);
if (versioned_object) {
- store->gen_rand_obj_instance_name(&head_obj);
+ if (!version_id.empty()) {
+ head_obj.set_instance(version_id);
+ } else {
+ store->gen_rand_obj_instance_name(&head_obj);
+ }
}
manifest.set_trivial_rule(max_chunk_size, store->ctx()->_conf->rgw_obj_stripe_size);
obj_op.meta.set_mtime = set_mtime;
obj_op.meta.owner = bucket_owner;
obj_op.meta.flags = PUT_OBJ_CREATE;
+ obj_op.meta.olh_epoch = olh_epoch;
bool is_olh = false;
if (head_obj.get_instance().empty()) {