From 32ddf972c6be7221b190dbdff43d5d082a334cbd Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Mon, 30 Oct 2023 00:03:22 +0000 Subject: [PATCH] docs: add guarded-listings example --- actix-files/Cargo.toml | 1 + actix-files/examples/guarded-listing.rs | 33 +++++++++++++++++++++++++ actix-files/src/files.rs | 2 +- 3 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 actix-files/examples/guarded-listing.rs diff --git a/actix-files/Cargo.toml b/actix-files/Cargo.toml index 80c609d1d..efecb0889 100644 --- a/actix-files/Cargo.toml +++ b/actix-files/Cargo.toml @@ -47,4 +47,5 @@ actix-server = { version = "2.2", optional = true } # ensure matching tokio-urin actix-rt = "2.7" actix-test = "0.1" actix-web = "4" +env_logger = "0.10" tempfile = "3.2" diff --git a/actix-files/examples/guarded-listing.rs b/actix-files/examples/guarded-listing.rs new file mode 100644 index 000000000..e8cde0c85 --- /dev/null +++ b/actix-files/examples/guarded-listing.rs @@ -0,0 +1,33 @@ +use actix_files::Files; +use actix_web::{get, guard, middleware, App, HttpServer, Responder}; + +const EXAMPLES_DIR: &str = concat![env!("CARGO_MANIFEST_DIR"), "/examples"]; + +#[get("/")] +async fn index() -> impl Responder { + "Hello world!" +} + +#[actix_web::main] +async fn main() -> std::io::Result<()> { + env_logger::init_from_env(env_logger::Env::new().default_filter_or("info")); + + log::info!("starting HTTP server at http://localhost:8080"); + + HttpServer::new(|| { + App::new() + .service(index) + .service( + Files::new("/assets", EXAMPLES_DIR) + .show_files_listing() + .guard(guard::Header("show-listing", "?1")), + ) + .service(Files::new("/assets", EXAMPLES_DIR)) + .wrap(middleware::Compress::default()) + .wrap(middleware::Logger::default()) + }) + .bind(("127.0.0.1", 8080))? + .workers(2) + .run() + .await +} diff --git a/actix-files/src/files.rs b/actix-files/src/files.rs index e34b5f26a..cfd3b9c22 100644 --- a/actix-files/src/files.rs +++ b/actix-files/src/files.rs @@ -235,7 +235,7 @@ impl Files { /// request starts being handled by the file service, it will not be able to back-out and try /// the next service, you will simply get a 404 (or 405) error response. /// - /// To allow `POST` requests to retrieve files, see [`Files::use_guards`]. + /// To allow `POST` requests to retrieve files, see [`Files::method_guard()`]. /// /// # Examples /// ```