This commit is contained in:
2022-12-30 20:52:41 +08:00
parent f933400535
commit d3a950b54d
47 changed files with 10444 additions and 2 deletions

31
examples/hyper.rs Normal file
View File

@@ -0,0 +1,31 @@
use std::convert::Infallible;
use webdav_handler::{fakels::FakeLs, localfs::LocalFs, DavHandler};
#[tokio::main]
async fn main() {
env_logger::init();
let dir = "/tmp";
let addr = ([127, 0, 0, 1], 4918).into();
let dav_server = DavHandler::builder()
.filesystem(LocalFs::new(dir, false, false, false))
.locksystem(FakeLs::new())
.build_handler();
let make_service = hyper::service::make_service_fn(move |_| {
let dav_server = dav_server.clone();
async move {
let func = move |req| {
let dav_server = dav_server.clone();
async move { Ok::<_, Infallible>(dav_server.handle(req).await) }
};
Ok::<_, Infallible>(hyper::service::service_fn(func))
}
});
println!("hyper example: listening on {:?} serving {}", addr, dir);
let _ = hyper::Server::bind(&addr)
.serve(make_service)
.await
.map_err(|e| eprintln!("server error: {}", e));
}