1 // -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
2 // vim: ts=8 sw=2 smarttab
5 #include "rgw_rest_s3.h"
6 #include "rgw_rest_user.h"
7 #include "rgw_os_lib.h"
9 #include "rgw_lib_frontend.h"
14 int RGWHandler_Lib::init_from_header(struct req_state *s)
19 const char *req_name = s->relative_uri.c_str();
22 /* skip request_params parsing, rgw_file should not be
24 if (*req_name == '?') {
27 p = s->info.request_params.c_str();
42 int pos = req.find('/');
44 first = req.substr(0, pos);
49 if (s->bucket_name.empty()) {
50 s->bucket_name = std::move(first);
52 // XXX ugh, another copy
53 string encoded_obj_str = req.substr(pos+1);
54 s->object = rgw_obj_key(encoded_obj_str, s->info.args.get("versionId"));
57 s->object = rgw_obj_key(req_name, s->info.args.get("versionId"));
60 } /* init_from_header */