Loading crates/s3s/examples/axum.rs +5 −4 Original line number Diff line number Diff line Loading @@ -2,7 +2,7 @@ use s3s::route::S3Route; use s3s::{Body, S3Request, S3Response, S3Result}; use axum::http; use http::{Extensions, HeaderMap, Method, StatusCode, Uri}; use http::{Extensions, HeaderMap, Method, Uri}; use tower::Service; pub struct CustomRoute { Loading Loading @@ -39,9 +39,10 @@ fn convert_request(req: S3Request<Body>) -> http::Request<Body> { http::Request::from_parts(parts, req.input) } fn convert_response(resp: http::Response<axum::body::Body>) -> S3Response<(StatusCode, Body)> { fn convert_response(resp: http::Response<axum::body::Body>) -> S3Response<Body> { let (parts, body) = resp.into_parts(); let mut s3_resp = S3Response::new((parts.status, Body::http_body_unsync(body))); let mut s3_resp = S3Response::new(Body::http_body_unsync(body)); s3_resp.status = Some(parts.status); s3_resp.headers = parts.headers; s3_resp.extensions = parts.extensions; s3_resp Loading @@ -62,7 +63,7 @@ impl S3Route for CustomRoute { Ok(()) // allow all requests } async fn call(&self, req: S3Request<Body>) -> S3Result<S3Response<(StatusCode, Body)>> { async fn call(&self, req: S3Request<Body>) -> S3Result<S3Response<Body>> { let mut service = self.router.clone().into_service::<Body>(); let req = convert_request(req); let result = service.call(req).await; Loading crates/s3s/src/ops/mod.rs +2 −2 Original line number Diff line number Diff line Loading @@ -218,9 +218,9 @@ pub async fn call(req: &mut Request, ccx: &CallContext<'_>) -> S3Result<Response match result { Ok(s3_resp) => Ok(Response { status: s3_resp.output.0, status: s3_resp.status.unwrap_or_default(), headers: s3_resp.headers, body: s3_resp.output.1, body: s3_resp.output, extensions: s3_resp.extensions, }), Err(err) => { Loading crates/s3s/src/route.rs +2 −5 Original line number Diff line number Diff line Loading @@ -5,12 +5,9 @@ use crate::S3Result; use hyper::HeaderMap; use hyper::Method; use hyper::StatusCode; use hyper::Uri; use hyper::http::Extensions; // TODO: Refactor S3Request and S3Response to support custom route better #[async_trait::async_trait] pub trait S3Route: Send + Sync + 'static { fn is_match(&self, method: &Method, uri: &Uri, headers: &HeaderMap, extensions: &mut Extensions) -> bool; Loading @@ -22,7 +19,7 @@ pub trait S3Route: Send + Sync + 'static { } } async fn call(&self, req: S3Request<Body>) -> S3Result<S3Response<(StatusCode, Body)>>; async fn call(&self, req: S3Request<Body>) -> S3Result<S3Response<Body>>; } #[cfg(test)] Loading @@ -46,7 +43,7 @@ mod tests { false } async fn call(&self, _: S3Request<Body>) -> S3Result<S3Response<(StatusCode, Body)>> { async fn call(&self, _: S3Request<Body>) -> S3Result<S3Response<Body>> { tracing::debug!("call AssumeRole"); return Err(s3_error!(NotImplemented)); } Loading Loading
crates/s3s/examples/axum.rs +5 −4 Original line number Diff line number Diff line Loading @@ -2,7 +2,7 @@ use s3s::route::S3Route; use s3s::{Body, S3Request, S3Response, S3Result}; use axum::http; use http::{Extensions, HeaderMap, Method, StatusCode, Uri}; use http::{Extensions, HeaderMap, Method, Uri}; use tower::Service; pub struct CustomRoute { Loading Loading @@ -39,9 +39,10 @@ fn convert_request(req: S3Request<Body>) -> http::Request<Body> { http::Request::from_parts(parts, req.input) } fn convert_response(resp: http::Response<axum::body::Body>) -> S3Response<(StatusCode, Body)> { fn convert_response(resp: http::Response<axum::body::Body>) -> S3Response<Body> { let (parts, body) = resp.into_parts(); let mut s3_resp = S3Response::new((parts.status, Body::http_body_unsync(body))); let mut s3_resp = S3Response::new(Body::http_body_unsync(body)); s3_resp.status = Some(parts.status); s3_resp.headers = parts.headers; s3_resp.extensions = parts.extensions; s3_resp Loading @@ -62,7 +63,7 @@ impl S3Route for CustomRoute { Ok(()) // allow all requests } async fn call(&self, req: S3Request<Body>) -> S3Result<S3Response<(StatusCode, Body)>> { async fn call(&self, req: S3Request<Body>) -> S3Result<S3Response<Body>> { let mut service = self.router.clone().into_service::<Body>(); let req = convert_request(req); let result = service.call(req).await; Loading
crates/s3s/src/ops/mod.rs +2 −2 Original line number Diff line number Diff line Loading @@ -218,9 +218,9 @@ pub async fn call(req: &mut Request, ccx: &CallContext<'_>) -> S3Result<Response match result { Ok(s3_resp) => Ok(Response { status: s3_resp.output.0, status: s3_resp.status.unwrap_or_default(), headers: s3_resp.headers, body: s3_resp.output.1, body: s3_resp.output, extensions: s3_resp.extensions, }), Err(err) => { Loading
crates/s3s/src/route.rs +2 −5 Original line number Diff line number Diff line Loading @@ -5,12 +5,9 @@ use crate::S3Result; use hyper::HeaderMap; use hyper::Method; use hyper::StatusCode; use hyper::Uri; use hyper::http::Extensions; // TODO: Refactor S3Request and S3Response to support custom route better #[async_trait::async_trait] pub trait S3Route: Send + Sync + 'static { fn is_match(&self, method: &Method, uri: &Uri, headers: &HeaderMap, extensions: &mut Extensions) -> bool; Loading @@ -22,7 +19,7 @@ pub trait S3Route: Send + Sync + 'static { } } async fn call(&self, req: S3Request<Body>) -> S3Result<S3Response<(StatusCode, Body)>>; async fn call(&self, req: S3Request<Body>) -> S3Result<S3Response<Body>>; } #[cfg(test)] Loading @@ -46,7 +43,7 @@ mod tests { false } async fn call(&self, _: S3Request<Body>) -> S3Result<S3Response<(StatusCode, Body)>> { async fn call(&self, _: S3Request<Body>) -> S3Result<S3Response<Body>> { tracing::debug!("call AssumeRole"); return Err(s3_error!(NotImplemented)); } Loading