Use the right integrity signal
Where supported, calculate a checksum before upload and compare it with a server-validated value or metadata after completion. Do not assume an ETag is always a content hash; multipart behavior and provider implementations can change its meaning.
For multipart uploads, verify all parts were accepted and finalization succeeded. A client disconnect can leave incomplete parts behind, so configure cleanup for abandoned uploads and distinguish initiation from completion.
Test the stored object
Read the object back or perform a range read and recompute the checksum for critical data. Confirm content type and metadata too, since correct bytes with wrong headers can still break downstream consumers.
Retry only failed parts or known incomplete operations, and avoid overwriting a valid object until its replacement is verified. For large data sets, keep a manifest of keys, sizes, and checksums for later audits.