32 lines
1005 B
Rust
32 lines
1005 B
Rust
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));
|
|
}
|