return r;
}
-RGWPutObjProcessor *RGWPutObj::select_processor(RGWObjectCtx& obj_ctx, bool *is_multipart)
-{
- RGWPutObjProcessor *processor;
-
- bool multipart = s->info.args.exists("uploadId");
-
- uint64_t part_size = s->cct->_conf->rgw_obj_stripe_size;
-
- if (!multipart) {
- processor = new RGWPutObjProcessor_Atomic(obj_ctx, s->bucket_info, s->bucket, s->object.name, part_size, s->req_id, s->bucket_info.versioning_enabled());
- (static_cast<RGWPutObjProcessor_Atomic *>(processor))->set_olh_epoch(olh_epoch);
- (static_cast<RGWPutObjProcessor_Atomic *>(processor))->set_version_id(version_id);
- } else {
- processor = new RGWPutObjProcessor_Multipart(obj_ctx, s->bucket_info, part_size, s);
- }
-
- if (is_multipart) {
- *is_multipart = multipart;
- }
-
- return processor;
-}
-
-void RGWPutObj::dispose_processor(RGWPutObjDataProcessor *processor)
-{
- delete processor;
-}
-
void RGWPutObj::pre_exec()
{
rgw_bucket_object_pre_exec(s);
WRITE_CLASS_ENCODER(RGWSLOInfo)
class RGWPutObj : public RGWOp {
-
- friend class RGWPutObjProcessor;
-
protected:
seed torrent;
off_t ofs;
attrs.emplace(std::move(key), std::move(bl)); /* key and bl are r-value refs */
}
- virtual RGWPutObjProcessor *select_processor(RGWObjectCtx& obj_ctx, bool *is_multipart);
- void dispose_processor(RGWPutObjDataProcessor *processor);
int verify_permission() override;
void pre_exec() override;
void execute() override;