diff --git a/src/aws-cpp-sdk-transfer/source/transfer/TransferManager.cpp b/src/aws-cpp-sdk-transfer/source/transfer/TransferManager.cpp index addee26d984..506b3c40245 100644 --- a/src/aws-cpp-sdk-transfer/source/transfer/TransferManager.cpp +++ b/src/aws-cpp-sdk-transfer/source/transfer/TransferManager.cpp @@ -407,18 +407,18 @@ namespace Aws bool isRetry = !handle->GetMultiPartId().empty(); uint64_t sentBytes = 0; - const auto fullObjectHashCalculator = [](const std::shared_ptr& handle, bool isRetry, S3::Model::ChecksumAlgorithm algorithm) -> std::shared_ptr { + const auto fullObjectHashCalculator = [](const std::shared_ptr& handle, bool isRetry, + S3::Model::ChecksumAlgorithm algorithm) -> std::shared_ptr { if (handle->GetChecksum().empty() && !isRetry) { - if (algorithm == S3::Model::ChecksumAlgorithm::CRC32 || algorithm == S3::Model::ChecksumAlgorithm::CRC32C) { - return Aws::MakeShared("TransferManager"); + if (algorithm == S3::Model::ChecksumAlgorithm::CRC64NVME) { + return Aws::MakeShared("TransferManager"); } - if (algorithm == S3::Model::ChecksumAlgorithm::SHA1) { - return Aws::MakeShared("TransferManager"); + if (algorithm == S3::Model::ChecksumAlgorithm::CRC32) { + return Aws::MakeShared("TransferManager"); } - if (algorithm == S3::Model::ChecksumAlgorithm::SHA256) { - return Aws::MakeShared("TransferManager"); + if (algorithm == S3::Model::ChecksumAlgorithm::CRC32C) { + return Aws::MakeShared("TransferManager"); } - return Aws::MakeShared("TransferManager"); } return nullptr; }(handle, isRetry, m_transferConfig.checksumAlgorithm); @@ -432,6 +432,10 @@ namespace Aws createMultipartRequest.SetKey(handle->GetKey()); createMultipartRequest.SetMetadata(handle->GetMetadata()); + if (fullObjectHashCalculator) { + createMultipartRequest.SetChecksumType(Aws::S3::Model::ChecksumType::FULL_OBJECT); + } + auto createMultipartResponse = m_transferConfig.s3Client->CreateMultipartUpload(createMultipartRequest); if (createMultipartResponse.IsSuccess()) { handle->SetMultipartId(createMultipartResponse.GetResult().GetUploadId());