@@ -944,23 +944,9 @@ namespace Aws
944944 // Validate full object checksum if available
945945 bool checksumValid = true ;
946946 if (!handle->GetChecksum ().empty ()) {
947- const auto & getResult = getObjectOutcome.GetResult ();
948- Aws::String actualChecksum;
947+ Aws::String actualChecksum = ExtractChecksum (getObjectOutcome);
949948
950- // Get the actual checksum from GetObject response
951- if (!getResult.GetChecksumCRC32 ().empty ()) {
952- actualChecksum = getResult.GetChecksumCRC32 ();
953- } else if (!getResult.GetChecksumCRC32C ().empty ()) {
954- actualChecksum = getResult.GetChecksumCRC32C ();
955- } else if (!getResult.GetChecksumSHA256 ().empty ()) {
956- actualChecksum = getResult.GetChecksumSHA256 ();
957- } else if (!getResult.GetChecksumSHA1 ().empty ()) {
958- actualChecksum = getResult.GetChecksumSHA1 ();
959- } else if (!getResult.GetChecksumCRC64NVME ().empty ()) {
960- actualChecksum = getResult.GetChecksumCRC64NVME ();
961- }
962-
963- if (!actualChecksum.empty () && actualChecksum != handle->GetChecksum ()) {
949+ if (actualChecksum != handle->GetChecksum ()) {
964950 checksumValid = false ;
965951 Aws::Client::AWSError<Aws::S3::S3Errors> checksumError (
966952 Aws::S3::S3Errors::INTERNAL_FAILURE,
@@ -1069,17 +1055,9 @@ namespace Aws
10691055 handle->SetEtag (headObjectOutcome.GetResult ().GetETag ());
10701056
10711057 // Store full object checksum from HeadObject for validation
1072- const auto & headResult = headObjectOutcome.GetResult ();
1073- if (!headResult.GetChecksumCRC32 ().empty ()) {
1074- handle->SetChecksum (headResult.GetChecksumCRC32 ());
1075- } else if (!headResult.GetChecksumCRC32C ().empty ()) {
1076- handle->SetChecksum (headResult.GetChecksumCRC32C ());
1077- } else if (!headResult.GetChecksumSHA256 ().empty ()) {
1078- handle->SetChecksum (headResult.GetChecksumSHA256 ());
1079- } else if (!headResult.GetChecksumSHA1 ().empty ()) {
1080- handle->SetChecksum (headResult.GetChecksumSHA1 ());
1081- } else if (!headResult.GetChecksumCRC64NVME ().empty ()) {
1082- handle->SetChecksum (headResult.GetChecksumCRC64NVME ());
1058+ Aws::String checksum = ExtractChecksum (headObjectOutcome);
1059+ if (!checksum.empty ()) {
1060+ handle->SetChecksum (checksum);
10831061 }
10841062
10851063 /* When bucket versioning is suspended, head object will return "null" for unversioned object.
@@ -1287,17 +1265,9 @@ namespace Aws
12871265 Aws::String errMsg{handle->WritePartToDownloadStream (bufferStream, partState->GetRangeBegin ())};
12881266 if (errMsg.empty ()) {
12891267 // Store part checksum for later validation
1290- const auto & getResult = outcome.GetResult ();
1291- if (!getResult.GetChecksumCRC32 ().empty ()) {
1292- partState->SetChecksum (getResult.GetChecksumCRC32 ());
1293- } else if (!getResult.GetChecksumCRC32C ().empty ()) {
1294- partState->SetChecksum (getResult.GetChecksumCRC32C ());
1295- } else if (!getResult.GetChecksumSHA256 ().empty ()) {
1296- partState->SetChecksum (getResult.GetChecksumSHA256 ());
1297- } else if (!getResult.GetChecksumSHA1 ().empty ()) {
1298- partState->SetChecksum (getResult.GetChecksumSHA1 ());
1299- } else if (!getResult.GetChecksumCRC64NVME ().empty ()) {
1300- partState->SetChecksum (getResult.GetChecksumCRC64NVME ());
1268+ Aws::String checksum = ExtractChecksum (outcome);
1269+ if (!checksum.empty ()) {
1270+ partState->SetChecksum (checksum);
13011271 }
13021272
13031273 handle->ChangePartToCompleted (partState, outcome.GetResult ().GetETag ());
0 commit comments