diff options
Diffstat (limited to 'src/api')
-rw-r--r-- | src/api/s3_put.rs | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/api/s3_put.rs b/src/api/s3_put.rs index 54fa3200..a528720d 100644 --- a/src/api/s3_put.rs +++ b/src/api/s3_put.rs @@ -51,6 +51,20 @@ pub async fn handle_put( let md5sum_arr = md5sum.finalize(); let md5sum_hex = hex::encode(md5sum_arr); + let mut sha256sum = Sha256::new(); + sha256sum.input(&first_block[..]); + let sha256sum_arr = sha256sum.result(); + let mut hash = [0u8; 32]; + hash.copy_from_slice(&sha256sum_arr[..]); + let sha256sum_hash = Hash::from(hash); + + ensure_checksum_matches( + md5sum_arr.as_slice(), + sha256sum_hash, + content_md5.as_deref(), + content_sha256, + )?; + object_version.state = ObjectVersionState::Complete(ObjectVersionData::Inline( ObjectVersionMeta { headers, |