]>
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
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 */