static string mp_ns = RGW_OBJ_NS_MULTIPART;
static string shadow_ns = RGW_OBJ_NS_SHADOW;
- static int forward_request_to_master(struct req_state *s, obj_version *objv, RGWRados *store, bufferlist& in_data, JSONParser *jp);
+ static void forward_req_info(CephContext *cct, req_info& info, const std::string& bucket_name);
+ static int forward_request_to_master(struct req_state *s, obj_version *objv, RGWRados *store,
+ bufferlist& in_data, JSONParser *jp, req_info *forward_info = nullptr);
-#define MULTIPART_UPLOAD_ID_PREFIX_LEGACY "2/"
-#define MULTIPART_UPLOAD_ID_PREFIX "2~" // must contain a unique char that may not come up in gen_rand_alpha()
-
-class MultipartMetaFilter : public RGWAccessListFilter {
-public:
- MultipartMetaFilter() {}
- bool filter(string& name, string& key) override {
- int len = name.size();
- if (len < 6)
- return false;
-
- size_t pos = name.find(MP_META_SUFFIX, len - 5);
- if (pos == string::npos)
- return false;
-
- pos = name.rfind('.', pos - 1);
- if (pos == string::npos)
- return false;
-
- key = name.substr(0, pos);
-
- return true;
- }
-};
-
static MultipartMetaFilter mp_filter;
static int parse_range(const char *range, off_t& ofs, off_t& end, bool *partial_content)