@@ -669,7 +669,7 @@ void AWSClient::AddChecksumToRequest(const std::shared_ptr<Aws::Http::HttpReques
669669 }
670670 else
671671 {
672- httpRequest->SetHeaderValue (" x-amz-checksum-crc32" , HashingUtils::Base64Encode (HashingUtils::CalculateCRC32 (*(request. GetBody ( )))));
672+ httpRequest->SetHeaderValue (" x-amz-checksum-crc32" , HashingUtils::Base64Encode (HashingUtils::CalculateCRC32 (*(GetBodyStream (request )))));
673673 }
674674 }
675675 else if (checksumAlgorithmName == " crc32c" )
@@ -680,7 +680,7 @@ void AWSClient::AddChecksumToRequest(const std::shared_ptr<Aws::Http::HttpReques
680680 }
681681 else
682682 {
683- httpRequest->SetHeaderValue (" x-amz-checksum-crc32c" , HashingUtils::Base64Encode (HashingUtils::CalculateCRC32C (*(request. GetBody ( )))));
683+ httpRequest->SetHeaderValue (" x-amz-checksum-crc32c" , HashingUtils::Base64Encode (HashingUtils::CalculateCRC32C (*(GetBodyStream (request )))));
684684 }
685685 }
686686 else if (checksumAlgorithmName == " sha256" )
@@ -691,7 +691,7 @@ void AWSClient::AddChecksumToRequest(const std::shared_ptr<Aws::Http::HttpReques
691691 }
692692 else
693693 {
694- httpRequest->SetHeaderValue (" x-amz-checksum-sha256" , HashingUtils::Base64Encode (HashingUtils::CalculateSHA256 (*(request. GetBody ( )))));
694+ httpRequest->SetHeaderValue (" x-amz-checksum-sha256" , HashingUtils::Base64Encode (HashingUtils::CalculateSHA256 (*(GetBodyStream (request )))));
695695 }
696696 }
697697 else if (checksumAlgorithmName == " sha1" )
@@ -702,12 +702,12 @@ void AWSClient::AddChecksumToRequest(const std::shared_ptr<Aws::Http::HttpReques
702702 }
703703 else
704704 {
705- httpRequest->SetHeaderValue (" x-amz-checksum-sha1" , HashingUtils::Base64Encode (HashingUtils::CalculateSHA1 (*(request. GetBody ( )))));
705+ httpRequest->SetHeaderValue (" x-amz-checksum-sha1" , HashingUtils::Base64Encode (HashingUtils::CalculateSHA1 (*(GetBodyStream (request )))));
706706 }
707707 }
708708 else if (checksumAlgorithmName == " md5" )
709709 {
710- httpRequest->SetHeaderValue (Http::CONTENT_MD5_HEADER, HashingUtils::Base64Encode (HashingUtils::CalculateMD5 (*(request. GetBody ( )))));
710+ httpRequest->SetHeaderValue (Http::CONTENT_MD5_HEADER, HashingUtils::Base64Encode (HashingUtils::CalculateMD5 (*(GetBodyStream (request )))));
711711 }
712712 else
713713 {
@@ -1027,6 +1027,13 @@ std::shared_ptr<Aws::Http::HttpRequest> AWSClient::ConvertToRequestForPresigning
10271027 return httpRequest;
10281028}
10291029
1030+ std::shared_ptr<Aws::IOStream> AWSClient::GetBodyStream (const Aws::AmazonWebServiceRequest& request) const {
1031+ if (request.GetBody () != nullptr ) {
1032+ return request.GetBody ();
1033+ }
1034+ return Aws::MakeShared<Aws::IOStream>(AWS_CLIENT_LOG_TAG, nullptr );
1035+ }
1036+
10301037std::shared_ptr<Aws::Http::HttpResponse> AWSClient::MakeHttpRequest (std::shared_ptr<Aws::Http::HttpRequest>& request) const
10311038{
10321039 return m_httpClient->MakeRequest (request, m_readRateLimiter.get (), m_writeRateLimiter.get ());
0 commit comments