提交 0504eb58 编写于 作者: V Vladimir Chebotarev

Correct S3 PUT requests in WriteBufferFromS3.

上级 19642cf8
......@@ -18,11 +18,15 @@ WriteBufferFromS3::WriteBufferFromS3(
LOG_TRACE((&Logger::get("WriteBufferFromS3")), "Sending request to " << uri.toString());
ostr = &session->sendRequest(request);
ostr = &temporary_stream;
}
void WriteBufferFromS3::finalize()
{
const std::string & data = temporary_stream.str();
request.setContentLength(data.size());
ostr = &session->sendRequest(request);
*ostr << data;
receiveResponse(*session, request, response);
/// TODO: Response body is ignored.
}
......
......@@ -2,6 +2,7 @@
#include <functional>
#include <memory>
#include <sstream>
#include <Core/Types.h>
#include <IO/ConnectionTimeouts.h>
#include <IO/HTTPCommon.h>
......@@ -34,6 +35,7 @@ private:
HTTPSessionPtr session;
Poco::Net::HTTPRequest request;
Poco::Net::HTTPResponse response;
std::ostringstream temporary_stream; /// Maybe one shall use some DB:: buffer.
public:
explicit WriteBufferFromS3(const Poco::URI & uri,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册