in sdk/src/OssClientImpl.cc [136:158]
void OssClientImpl::addBody(const std::shared_ptr<HttpRequest> &httpRequest, const std::shared_ptr<std::iostream>& body, bool contentMd5) const
{
if (body == nullptr) {
Http::Method methold = httpRequest->method();
if (methold == Http::Method::Get || methold == Http::Method::Post) {
httpRequest->setHeader(Http::CONTENT_LENGTH, "0");
} else {
httpRequest->removeHeader(Http::CONTENT_LENGTH);
}
}
if ((body != nullptr) && !httpRequest->hasHeader(Http::CONTENT_LENGTH)) {
auto streamSize = GetIOStreamLength(*body);
httpRequest->setHeader(Http::CONTENT_LENGTH, std::to_string(streamSize));
}
if (contentMd5 && body && !httpRequest->hasHeader(Http::CONTENT_MD5)) {
auto md5 = ComputeContentMD5(*body);
httpRequest->setHeader(Http::CONTENT_MD5, md5);
}
httpRequest->addBody(body);
}