test: verify saved checksums in streaming putobject tests
All checks were successful
ci/woodpecker/push/debug Pipeline was successful
ci/woodpecker/pr/debug Pipeline was successful

This commit is contained in:
Alex 2025-02-18 22:02:04 +01:00
parent cfe8e8d45c
commit 6d38907dac

View file

@ -69,6 +69,13 @@ async fn test_putobject_streaming() {
{ {
let etag = "\"46cf18a9b447991b450cad3facf5937e\""; let etag = "\"46cf18a9b447991b450cad3facf5937e\"";
let mut crc32 = Crc32::new();
crc32.update(&BODY[..]);
let crc32 = BASE64_STANDARD.encode(&u32::to_be_bytes(crc32.finalize())[..]);
let mut headers = HashMap::new();
headers.insert("x-amz-checksum-crc32".to_owned(), crc32.clone());
let res = ctx let res = ctx
.custom_request .custom_request
.builder(bucket.clone()) .builder(bucket.clone())
@ -77,6 +84,7 @@ async fn test_putobject_streaming() {
//fail //fail
.path("abc".to_owned()) .path("abc".to_owned())
.vhost_style(true) .vhost_style(true)
.signed_headers(headers)
.body(BODY.to_vec()) .body(BODY.to_vec())
.body_signature(BodySignature::Streaming { chunk_size: 16 }) .body_signature(BodySignature::Streaming { chunk_size: 16 })
.send() .send()
@ -93,6 +101,7 @@ async fn test_putobject_streaming() {
.bucket(&bucket) .bucket(&bucket)
//.key(CTRL_KEY) //.key(CTRL_KEY)
.key("abc") .key("abc")
.checksum_mode(aws_sdk_s3::types::ChecksumMode::Enabled)
.send() .send()
.await .await
.unwrap(); .unwrap();
@ -103,6 +112,7 @@ async fn test_putobject_streaming() {
assert_eq!(o.content_length.unwrap(), 62); assert_eq!(o.content_length.unwrap(), 62);
assert_eq!(o.parts_count, None); assert_eq!(o.parts_count, None);
assert_eq!(o.tag_count, None); assert_eq!(o.tag_count, None);
assert_eq!(o.checksum_crc32.unwrap(), crc32);
} }
} }
@ -210,7 +220,7 @@ async fn test_putobject_streaming_unsigned_trailer() {
.body_signature(BodySignature::StreamingUnsignedTrailer { .body_signature(BodySignature::StreamingUnsignedTrailer {
chunk_size: 16, chunk_size: 16,
trailer_algorithm: "x-amz-checksum-crc32".into(), trailer_algorithm: "x-amz-checksum-crc32".into(),
trailer_value: crc32, trailer_value: crc32.clone(),
}) })
.send() .send()
.await .await
@ -226,6 +236,7 @@ async fn test_putobject_streaming_unsigned_trailer() {
.bucket(&bucket) .bucket(&bucket)
//.key(CTRL_KEY) //.key(CTRL_KEY)
.key("abc") .key("abc")
.checksum_mode(aws_sdk_s3::types::ChecksumMode::Enabled)
.send() .send()
.await .await
.unwrap(); .unwrap();
@ -236,6 +247,7 @@ async fn test_putobject_streaming_unsigned_trailer() {
assert_eq!(o.content_length.unwrap(), 62); assert_eq!(o.content_length.unwrap(), 62);
assert_eq!(o.parts_count, None); assert_eq!(o.parts_count, None);
assert_eq!(o.tag_count, None); assert_eq!(o.tag_count, None);
assert_eq!(o.checksum_crc32.unwrap(), crc32);
} }
} }