clone from: https://github.com/miquels/webdav-handler-rs
This commit is contained in:
37
examples/actix.rs
Normal file
37
examples/actix.rs
Normal file
@@ -0,0 +1,37 @@
|
||||
use std::io;
|
||||
|
||||
use actix_web::{web, App, HttpServer};
|
||||
use webdav_handler::actix::*;
|
||||
use webdav_handler::{fakels::FakeLs, localfs::LocalFs, DavConfig, DavHandler};
|
||||
|
||||
pub async fn dav_handler(req: DavRequest, davhandler: web::Data<DavHandler>) -> DavResponse {
|
||||
if let Some(prefix) = req.prefix() {
|
||||
let config = DavConfig::new().strip_prefix(prefix);
|
||||
davhandler.handle_with(config, req.request).await.into()
|
||||
} else {
|
||||
davhandler.handle(req.request).await.into()
|
||||
}
|
||||
}
|
||||
|
||||
#[actix_web::main]
|
||||
async fn main() -> io::Result<()> {
|
||||
env_logger::init();
|
||||
let addr = "127.0.0.1:4918";
|
||||
let dir = "/tmp";
|
||||
|
||||
let dav_server = DavHandler::builder()
|
||||
.filesystem(LocalFs::new(dir, false, false, false))
|
||||
.locksystem(FakeLs::new())
|
||||
.build_handler();
|
||||
|
||||
println!("actix-web example: listening on {} serving {}", addr, dir);
|
||||
|
||||
HttpServer::new(move || {
|
||||
App::new()
|
||||
.data(dav_server.clone())
|
||||
.service(web::resource("/{tail:.*}").to(dav_handler))
|
||||
})
|
||||
.bind(addr)?
|
||||
.run()
|
||||
.await
|
||||
}
|
||||
Reference in New Issue
Block a user