Loading codegen/src/ops.rs +2 −1 Original line number Diff line number Diff line Loading @@ -908,7 +908,8 @@ fn codegen_op_http_de_multipart(op: &Operation, rust_types: &RustTypes, g: &mut )); { g.ln("let (bucket, key) = http::unwrap_object(req);"); g.ln("let bucket = http::unwrap_bucket(req);"); g.ln("let key = http::parse_field_value(&m, \"key\")?.ok_or_else(|| invalid_request!(\"missing key\"))?;"); g.lf(); } Loading crates/s3s/src/http/de.rs +2 −0 Original line number Diff line number Diff line Loading @@ -130,11 +130,13 @@ pub fn parse_opt_query_timestamp(req: &Request, name: &str, fmt: TimestampFormat Ok(Some(Timestamp::parse(fmt, val).map_err(|err| invalid_query(err, name, val))?)) } #[track_caller] pub fn unwrap_bucket(req: &mut Request) -> String { let Some(S3Path::Bucket { bucket }) = req.extensions_mut().remove::<S3Path>() else { panic!("url parameter not found") }; bucket.into() } #[track_caller] pub fn unwrap_object(req: &mut Request) -> (String, String) { let Some(S3Path::Object { bucket, key }) = req.extensions_mut().remove::<S3Path>() else { panic!("url parameter not found") }; (bucket.into(), key.into()) Loading crates/s3s/src/ops/generated.rs +2 −1 Original line number Diff line number Diff line Loading @@ -14401,7 +14401,8 @@ impl PutObject { } pub fn deserialize_http_multipart(req: &mut http::Request, mut m: http::Multipart) -> S3Result<PutObjectInput> { let (bucket, key) = http::unwrap_object(req); let bucket = http::unwrap_bucket(req); let key = http::parse_field_value(&m, "key")?.ok_or_else(|| invalid_request!("missing key"))?; let body: Option<StreamingBlob> = m.take_file_stream().map(StreamingBlob::wrap); crates/s3s/src/ops/mod.rs +2 −1 Original line number Diff line number Diff line Loading @@ -202,7 +202,8 @@ async fn call_inner(req: &mut Request, s3: &dyn S3, auth: Option<&dyn S3Auth>, b } } } debug!(?body_transformed, ?decoded_content_length); let has_multipart = multipart.is_some(); debug!(?body_transformed, ?decoded_content_length, ?has_multipart); } let (op, needs_full_body) = 'resolve: { Loading scripts/s3s-proxy.sh +1 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ export AWS_REGION=us-east-1 if [ -z "$RUST_LOG" ]; then export RUST_LOG="s3s_proxy=debug,s3s_aws=debug,s3s=debug" fi export RUST_BACKTRACE=full s3s-proxy \ --host localhost \ Loading Loading
codegen/src/ops.rs +2 −1 Original line number Diff line number Diff line Loading @@ -908,7 +908,8 @@ fn codegen_op_http_de_multipart(op: &Operation, rust_types: &RustTypes, g: &mut )); { g.ln("let (bucket, key) = http::unwrap_object(req);"); g.ln("let bucket = http::unwrap_bucket(req);"); g.ln("let key = http::parse_field_value(&m, \"key\")?.ok_or_else(|| invalid_request!(\"missing key\"))?;"); g.lf(); } Loading
crates/s3s/src/http/de.rs +2 −0 Original line number Diff line number Diff line Loading @@ -130,11 +130,13 @@ pub fn parse_opt_query_timestamp(req: &Request, name: &str, fmt: TimestampFormat Ok(Some(Timestamp::parse(fmt, val).map_err(|err| invalid_query(err, name, val))?)) } #[track_caller] pub fn unwrap_bucket(req: &mut Request) -> String { let Some(S3Path::Bucket { bucket }) = req.extensions_mut().remove::<S3Path>() else { panic!("url parameter not found") }; bucket.into() } #[track_caller] pub fn unwrap_object(req: &mut Request) -> (String, String) { let Some(S3Path::Object { bucket, key }) = req.extensions_mut().remove::<S3Path>() else { panic!("url parameter not found") }; (bucket.into(), key.into()) Loading
crates/s3s/src/ops/generated.rs +2 −1 Original line number Diff line number Diff line Loading @@ -14401,7 +14401,8 @@ impl PutObject { } pub fn deserialize_http_multipart(req: &mut http::Request, mut m: http::Multipart) -> S3Result<PutObjectInput> { let (bucket, key) = http::unwrap_object(req); let bucket = http::unwrap_bucket(req); let key = http::parse_field_value(&m, "key")?.ok_or_else(|| invalid_request!("missing key"))?; let body: Option<StreamingBlob> = m.take_file_stream().map(StreamingBlob::wrap);
crates/s3s/src/ops/mod.rs +2 −1 Original line number Diff line number Diff line Loading @@ -202,7 +202,8 @@ async fn call_inner(req: &mut Request, s3: &dyn S3, auth: Option<&dyn S3Auth>, b } } } debug!(?body_transformed, ?decoded_content_length); let has_multipart = multipart.is_some(); debug!(?body_transformed, ?decoded_content_length, ?has_multipart); } let (op, needs_full_body) = 'resolve: { Loading
scripts/s3s-proxy.sh +1 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ export AWS_REGION=us-east-1 if [ -z "$RUST_LOG" ]; then export RUST_LOG="s3s_proxy=debug,s3s_aws=debug,s3s=debug" fi export RUST_BACKTRACE=full s3s-proxy \ --host localhost \ Loading