aboutsummaryrefslogtreecommitdiff
path: root/src/api/s3_put.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/api/s3_put.rs')
-rw-r--r--src/api/s3_put.rs14
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,