Loading codegen/src/ops.rs +2 −1 Original line number Diff line number Diff line Loading @@ -110,6 +110,7 @@ pub fn codegen(ops: &Operations, rust_types: &RustTypes, g: &mut Codegen) { "use crate::s3_trait::S3;", "", "use std::borrow::Cow;", "use std::sync::Arc;", "", ]); Loading Loading @@ -596,7 +597,7 @@ fn codegen_op_http_call(op: &Operation, g: &mut Codegen) { g.ln("}"); g.lf(); g.ln("async fn call(&self, s3: &dyn S3, req: &mut http::Request) -> S3Result<http::Response> {"); g.ln("async fn call(&self, s3: &Arc<dyn S3>, req: &mut http::Request) -> S3Result<http::Response> {"); let method = op.name.to_snake_case(); Loading crates/s3s-fs/src/main.rs +19 −14 Original line number Diff line number Diff line Loading @@ -5,7 +5,7 @@ use s3s_fs::FileSystem; use s3s_fs::Result; use s3s::auth::SimpleAuth; use s3s::service::S3Service; use s3s::service::S3ServiceBuilder; use std::net::TcpListener; use std::path::PathBuf; Loading Loading @@ -48,21 +48,26 @@ async fn main() -> Result { setup_tracing(); let opt = Opt::parse(); // Setup S3 service // Setup S3 provider let fs = FileSystem::new(opt.root)?; let mut service = S3Service::new(Box::new(fs)); // Setup S3 service let service = { let mut b = S3ServiceBuilder::new(fs); // Enable authentication if let (Some(ak), Some(sk)) = (opt.access_key, opt.secret_key) { let auth = SimpleAuth::from_single(ak, sk); service.set_auth(Box::new(auth)); b.set_auth(SimpleAuth::from_single(ak, sk)); } // Enable parsing virtual-hosted-style requests if let Some(domain_name) = opt.domain_name { service.set_base_domain(domain_name); b.set_base_domain(domain_name); } b.build() }; // Run server let listener = TcpListener::bind((opt.host.as_str(), opt.port))?; let server = Server::from_tcp(listener)?.serve(service.into_shared().into_make_service()); Loading crates/s3s-fs/tests/it_aws.rs +17 −11 Original line number Diff line number Diff line Loading @@ -4,7 +4,9 @@ clippy::must_use_candidate, // )] use s3s::service::S3Service; use s3s::auth::SimpleAuth; use s3s::service::S3ServiceBuilder; use s3s_fs::FileSystem; use std::env; use std::fs; Loading Loading @@ -49,21 +51,25 @@ fn config() -> &'static SdkConfig { static CONFIG: Lazy<SdkConfig> = Lazy::new(|| { setup_tracing(); // Fake credentials let cred = Credentials::for_tests(); let conn = { // Setup S3 provider fs::create_dir_all(FS_ROOT).unwrap(); let fs = s3s_fs::FileSystem::new(FS_ROOT).unwrap(); let auth = s3s::auth::SimpleAuth::from_single(cred.access_key_id(), cred.secret_access_key()); let mut service = S3Service::new(Box::new(fs)); service.set_auth(Box::new(auth)); service.set_base_domain(DOMAIN_NAME); s3s_aws::Connector::from(service.into_shared()) let fs = FileSystem::new(FS_ROOT).unwrap(); // Setup S3 service let service = { let mut b = S3ServiceBuilder::new(fs); b.set_auth(SimpleAuth::from_single(cred.access_key_id(), cred.secret_access_key())); b.set_base_domain(DOMAIN_NAME); b.build() }; // Convert to aws http connector let conn = s3s_aws::Connector::from(service.into_shared()); // Setup aws sdk config SdkConfig::builder() .credentials_provider(SharedCredentialsProvider::new(cred)) .http_connector(conn) Loading crates/s3s-proxy/src/main.rs +20 −15 Original line number Diff line number Diff line Loading @@ -2,7 +2,7 @@ #![deny(clippy::all)] use s3s::auth::SimpleAuth; use s3s::service::S3Service; use s3s::service::S3ServiceBuilder; use std::error::Error; use std::net::TcpListener; Loading Loading @@ -42,23 +42,28 @@ async fn main() -> Result<(), Box<dyn Error + Send + Sync + 'static>> { setup_tracing(); let opt = Opt::parse(); // Setup S3 service // Setup S3 provider let conf = aws_config::from_env().endpoint_url(&opt.endpoint_url).load().await; let proxy = s3s_aws::Proxy::from(aws_sdk_s3::Client::new(&conf)); let mut service = S3Service::new(Box::new(proxy)); // Setup S3 service let service = { let mut b = S3ServiceBuilder::new(proxy); // Enable authentication if let Some(cred_provider) = conf.credentials_provider() { let cred = cred_provider.provide_credentials().await?; let auth = SimpleAuth::from_single(cred.access_key_id(), cred.secret_access_key()); service.set_auth(Box::new(auth)); b.set_auth(SimpleAuth::from_single(cred.access_key_id(), cred.secret_access_key())); } // Enable parsing virtual-hosted-style requests if let Some(domain_name) = opt.domain_name { service.set_base_domain(domain_name); b.set_base_domain(domain_name); } b.build() }; // Run server let listener = TcpListener::bind((opt.host.as_str(), opt.port))?; let server = Server::from_tcp(listener)?.serve(service.into_shared().into_make_service()); Loading crates/s3s/src/ops/generated.rs +94 −93 File changed.Preview size limit exceeded, changes collapsed. Show changes Loading
codegen/src/ops.rs +2 −1 Original line number Diff line number Diff line Loading @@ -110,6 +110,7 @@ pub fn codegen(ops: &Operations, rust_types: &RustTypes, g: &mut Codegen) { "use crate::s3_trait::S3;", "", "use std::borrow::Cow;", "use std::sync::Arc;", "", ]); Loading Loading @@ -596,7 +597,7 @@ fn codegen_op_http_call(op: &Operation, g: &mut Codegen) { g.ln("}"); g.lf(); g.ln("async fn call(&self, s3: &dyn S3, req: &mut http::Request) -> S3Result<http::Response> {"); g.ln("async fn call(&self, s3: &Arc<dyn S3>, req: &mut http::Request) -> S3Result<http::Response> {"); let method = op.name.to_snake_case(); Loading
crates/s3s-fs/src/main.rs +19 −14 Original line number Diff line number Diff line Loading @@ -5,7 +5,7 @@ use s3s_fs::FileSystem; use s3s_fs::Result; use s3s::auth::SimpleAuth; use s3s::service::S3Service; use s3s::service::S3ServiceBuilder; use std::net::TcpListener; use std::path::PathBuf; Loading Loading @@ -48,21 +48,26 @@ async fn main() -> Result { setup_tracing(); let opt = Opt::parse(); // Setup S3 service // Setup S3 provider let fs = FileSystem::new(opt.root)?; let mut service = S3Service::new(Box::new(fs)); // Setup S3 service let service = { let mut b = S3ServiceBuilder::new(fs); // Enable authentication if let (Some(ak), Some(sk)) = (opt.access_key, opt.secret_key) { let auth = SimpleAuth::from_single(ak, sk); service.set_auth(Box::new(auth)); b.set_auth(SimpleAuth::from_single(ak, sk)); } // Enable parsing virtual-hosted-style requests if let Some(domain_name) = opt.domain_name { service.set_base_domain(domain_name); b.set_base_domain(domain_name); } b.build() }; // Run server let listener = TcpListener::bind((opt.host.as_str(), opt.port))?; let server = Server::from_tcp(listener)?.serve(service.into_shared().into_make_service()); Loading
crates/s3s-fs/tests/it_aws.rs +17 −11 Original line number Diff line number Diff line Loading @@ -4,7 +4,9 @@ clippy::must_use_candidate, // )] use s3s::service::S3Service; use s3s::auth::SimpleAuth; use s3s::service::S3ServiceBuilder; use s3s_fs::FileSystem; use std::env; use std::fs; Loading Loading @@ -49,21 +51,25 @@ fn config() -> &'static SdkConfig { static CONFIG: Lazy<SdkConfig> = Lazy::new(|| { setup_tracing(); // Fake credentials let cred = Credentials::for_tests(); let conn = { // Setup S3 provider fs::create_dir_all(FS_ROOT).unwrap(); let fs = s3s_fs::FileSystem::new(FS_ROOT).unwrap(); let auth = s3s::auth::SimpleAuth::from_single(cred.access_key_id(), cred.secret_access_key()); let mut service = S3Service::new(Box::new(fs)); service.set_auth(Box::new(auth)); service.set_base_domain(DOMAIN_NAME); s3s_aws::Connector::from(service.into_shared()) let fs = FileSystem::new(FS_ROOT).unwrap(); // Setup S3 service let service = { let mut b = S3ServiceBuilder::new(fs); b.set_auth(SimpleAuth::from_single(cred.access_key_id(), cred.secret_access_key())); b.set_base_domain(DOMAIN_NAME); b.build() }; // Convert to aws http connector let conn = s3s_aws::Connector::from(service.into_shared()); // Setup aws sdk config SdkConfig::builder() .credentials_provider(SharedCredentialsProvider::new(cred)) .http_connector(conn) Loading
crates/s3s-proxy/src/main.rs +20 −15 Original line number Diff line number Diff line Loading @@ -2,7 +2,7 @@ #![deny(clippy::all)] use s3s::auth::SimpleAuth; use s3s::service::S3Service; use s3s::service::S3ServiceBuilder; use std::error::Error; use std::net::TcpListener; Loading Loading @@ -42,23 +42,28 @@ async fn main() -> Result<(), Box<dyn Error + Send + Sync + 'static>> { setup_tracing(); let opt = Opt::parse(); // Setup S3 service // Setup S3 provider let conf = aws_config::from_env().endpoint_url(&opt.endpoint_url).load().await; let proxy = s3s_aws::Proxy::from(aws_sdk_s3::Client::new(&conf)); let mut service = S3Service::new(Box::new(proxy)); // Setup S3 service let service = { let mut b = S3ServiceBuilder::new(proxy); // Enable authentication if let Some(cred_provider) = conf.credentials_provider() { let cred = cred_provider.provide_credentials().await?; let auth = SimpleAuth::from_single(cred.access_key_id(), cred.secret_access_key()); service.set_auth(Box::new(auth)); b.set_auth(SimpleAuth::from_single(cred.access_key_id(), cred.secret_access_key())); } // Enable parsing virtual-hosted-style requests if let Some(domain_name) = opt.domain_name { service.set_base_domain(domain_name); b.set_base_domain(domain_name); } b.build() }; // Run server let listener = TcpListener::bind((opt.host.as_str(), opt.port))?; let server = Server::from_tcp(listener)?.serve(service.into_shared().into_make_service()); Loading
crates/s3s/src/ops/generated.rs +94 −93 File changed.Preview size limit exceeded, changes collapsed. Show changes