Fixes: #3516
We don't default to init multipart upload request when
getting S3 POST. This way when the request is not really
init multipart upload we'd end up sending a 405 response
instead of 500. Also, it's cleaner this way.
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
return ret;
}
-int RGWInitMultipart_ObjStore::get_params()
-{
- if (!s->args.exists("uploads")) {
- ret = -ENOTSUP;
- }
-
- return ret;
-}
-
static int read_all_chunked_input(req_state *s, char **pdata, int *plen)
{
#define READ_CHUNK 4096
public:
RGWInitMultipart_ObjStore() {}
~RGWInitMultipart_ObjStore() {}
-
- virtual int get_params();
};
class RGWCompleteMultipart_ObjStore : public RGWCompleteMultipart {
policy = s3policy;
- return RGWInitMultipart_ObjStore::get_params();
+ return 0;
}
void RGWInitMultipart_ObjStore_S3::send_response()
{
if (s->args.exists("uploadId"))
return new RGWCompleteMultipart_ObjStore_S3;
- else
+
+ if (s->args.exists("uploads"))
return new RGWInitMultipart_ObjStore_S3;
+
+ return NULL;
}
int RGWHandler_ObjStore_S3::init_from_header(struct req_state *s, int default_formatter, bool configurable_format)