feat(storage): Introduce unified checksum options and deprecate old options#16260
feat(storage): Introduce unified checksum options and deprecate old options#16260v-pratap wants to merge 1 commit into
Conversation
There was a problem hiding this comment.
Code Review
This pull request introduces UploadChecksumValidationOption and DownloadChecksumValidationOption to configure checksum algorithms, deprecating several older validation options. It also updates AsyncWriterConnectionImpl::Finalize to support manual expected checksums and adds corresponding unit tests and examples. The review feedback highlights a critical issue where non-appendable uploads only check current_options instead of merged options, which would cause pre-computed checksums specified at the start of the upload to be ignored during finalization.
1264fa0 to
55ceb4c
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #16260 +/- ##
==========================================
- Coverage 92.27% 92.27% -0.01%
==========================================
Files 2214 2214
Lines 206505 206518 +13
==========================================
+ Hits 190556 190558 +2
- Misses 15949 15960 +11 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
55ceb4c to
6580fd9
Compare
6580fd9 to
6c92722
Compare
| * | ||
| * @ingroup storage-options | ||
| */ | ||
| enum class ChecksumAlgorithm { |
There was a problem hiding this comment.
In the old boolean system, a user could theoretically have passed DisableCrc32cChecksum(false) and DisableMD5Hash(false) to force the client to compute and validate both hashes. If that use case is valid, we may need a kBoth enum member.
Introduces unified enum-based
UploadChecksumValidationOptionandDownloadChecksumValidationOptionand deprecates the old bool-basedEnableMD5ValidationOptionandEnableCrc32cValidationOption.