]>
git.proxmox.com Git - ceph.git/blob - ceph/src/rgw/rgw_os_lib.cc
1 // -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
2 // vim: ts=8 sw=2 smarttab ft=cpp
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(rgw::sal::Store
* store
,
20 const char *req_name
= s
->relative_uri
.c_str();
23 /* skip request_params parsing, rgw_file should not be
25 if (*req_name
== '?') {
28 p
= s
->info
.request_params
.c_str();
32 s
->info
.args
.parse(s
);
43 int pos
= req
.find('/');
45 first
= req
.substr(0, pos
);
50 if (s
->bucket_name
.empty()) {
51 s
->bucket_name
= std::move(first
);
53 // XXX ugh, another copy
54 string encoded_obj_str
= req
.substr(pos
+1);
55 s
->object
= store
->get_object(rgw_obj_key(encoded_obj_str
, s
->info
.args
.get("versionId")));
58 s
->object
= store
->get_object(rgw_obj_key(req_name
, s
->info
.args
.get("versionId")));
61 } /* init_from_header */