api: refactor: move checksumming code around again

This commit is contained in:
Alex Auvolat
2025-02-17 20:11:06 +01:00
parent 658541d812
commit 21c0dda16a
8 changed files with 127 additions and 147 deletions
-7
View File
@@ -8,11 +8,6 @@ use serde::Deserialize;
use tokio::sync::mpsc;
use tokio::task;
use opentelemetry::{
trace::{FutureExt as OtelFutureExt, TraceContextExt, Tracer},
Context,
};
use super::*;
use crate::signature::checksum::*;
@@ -84,8 +79,6 @@ impl ReqBody {
let (frame_tx, mut frame_rx) = mpsc::channel::<Frame<Bytes>>(1);
let join_checksums = tokio::spawn(async move {
let tracer = opentelemetry::global::tracer("garage");
while let Some(frame) = frame_rx.recv().await {
match frame.into_data() {
Ok(data) => {
+22
View File
@@ -314,3 +314,25 @@ pub fn request_checksum_algorithm_value(
None => Ok(None),
}
}
pub fn add_checksum_response_headers(
checksum: &Option<ChecksumValue>,
mut resp: http::response::Builder,
) -> http::response::Builder {
match checksum {
Some(ChecksumValue::Crc32(crc32)) => {
resp = resp.header(X_AMZ_CHECKSUM_CRC32, BASE64_STANDARD.encode(&crc32));
}
Some(ChecksumValue::Crc32c(crc32c)) => {
resp = resp.header(X_AMZ_CHECKSUM_CRC32C, BASE64_STANDARD.encode(&crc32c));
}
Some(ChecksumValue::Sha1(sha1)) => {
resp = resp.header(X_AMZ_CHECKSUM_SHA1, BASE64_STANDARD.encode(&sha1));
}
Some(ChecksumValue::Sha256(sha256)) => {
resp = resp.header(X_AMZ_CHECKSUM_SHA256, BASE64_STANDARD.encode(&sha256));
}
None => (),
}
resp
}
-1
View File
@@ -71,7 +71,6 @@ pub async fn verify_request(
service: &'static str,
) -> Result<VerifiedRequest, Error> {
let checked_signature = payload::check_payload_signature(&garage, &mut req, service).await?;
eprintln!("checked signature: {:?}", checked_signature);
let request = streaming::parse_streaming_body(
req,