AWS S3 MD5 digest with multipart uploads
In version v2023.1.31.0 we added Verify support for multipart uploads. Some very interesting information can be found here:
- If an object is created by a Multipart Upload operation, the ETag is not an MD5 digest, regardless of the method of encryption.
- For multipart uploads the ETag is the MD5 hexdigest of each part’s MD5 digest concatenated together, followed by the number of parts separated by a dash.
We added code to recalculate the MD5 hex digest using the Filesize of the download and the ETag ‘stripped number of parts’ we received from the S3 object. This way we could calculate the size and MD5 checksum for each part. This information was used to calculate the MD5 hex digest of the concatenated checksums.
By default ‘Verify File after Copy / Move’ is enabled which uses the ETag of the S3 object (File) as MD5 hash to compare the download result.