diff --git a/codegen/src/ops.rs b/codegen/src/ops.rs index 1123d442..07cd0d8b 100644 --- a/codegen/src/ops.rs +++ b/codegen/src/ops.rs @@ -661,7 +661,13 @@ fn codegen_op_http_call(op: &Operation) { g!("let fut = async move {{"); g!("let result = s3.{method}(s3_req).await;"); g!("match result {{"); - g!("Ok(s3_resp) => Self::serialize_http(s3_resp.output).unwrap(),"); + glines![ + "Ok(s3_resp) => { + let mut resp = Self::serialize_http(s3_resp.output).unwrap(); + resp.headers.extend(s3_resp.headers); + resp + }" + ]; g!("Err(err) => super::serialize_error_no_decl(err).unwrap(),"); g!("}}"); g!("}};"); diff --git a/crates/s3s/src/keep_alive_body.rs b/crates/s3s/src/keep_alive_body.rs index ff55b379..a3646135 100644 --- a/crates/s3s/src/keep_alive_body.rs +++ b/crates/s3s/src/keep_alive_body.rs @@ -82,4 +82,8 @@ where } } } + + fn is_end_stream(&self) -> bool { + self.done + } } diff --git a/crates/s3s/src/ops/generated.rs b/crates/s3s/src/ops/generated.rs index a0045db5..7c19e1ef 100644 --- a/crates/s3s/src/ops/generated.rs +++ b/crates/s3s/src/ops/generated.rs @@ -556,7 +556,11 @@ impl super::Operation for CompleteMultipartUpload { let fut = async move { let result = s3.complete_multipart_upload(s3_req).await; match result { - Ok(s3_resp) => Self::serialize_http(s3_resp.output).unwrap(), + Ok(s3_resp) => { + let mut resp = Self::serialize_http(s3_resp.output).unwrap(); + resp.headers.extend(s3_resp.headers); + resp + } Err(err) => super::serialize_error_no_decl(err).unwrap(), } };