Struct espresso::files::Files

source ·
pub struct Files { /* private fields */ }
Expand description

Static files handling

Files service must be registered with App::service() method.

use std::{
  convert::TryInto,
  sync::Arc,
};
use actix_web::App;
use espresso::{
  files::Files,
  config::ServerConfig,
};
use tokio::sync::RwLock;

let mut server_config = ServerConfig::default();

let serve_dir = Arc::new(RwLock::new(Some(".".into())));
let root_path_context = Arc::new((&server_config).try_into().unwrap());
let path_contexts = Arc::new(vec![]);

let app = App::new()
  .service(Files::new(
    "/static",
    serve_dir,
    root_path_context,
    path_contexts,
  ));

Implementations

Create new Files instance for specified base directory.

File uses ThreadPool for blocking filesystem operations. By default pool with 5x threads of available cpus is used. Pool size can be changed by setting ACTIX_THREADPOOL environment variable.

Redirects to a slash-ended path when browsing a directory.

By default never redirect.

Adds a routing guard.

Use this to allow multiple chained file services that respond to strictly different properties of a request. Due to the way routing works, if a guard check returns true and the 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.

Examples
use std::{
  convert::TryInto,
  sync::Arc,
};
use actix_web::{guard::Header, App};
use espresso::{
  files::Files,
  config::ServerConfig,
};
use tokio::sync::RwLock;

let mut server_config = ServerConfig::default();

let serve_dir = Arc::new(RwLock::new(Some(".".into())));
let root_path_context = Arc::new((&server_config).try_into().unwrap());
let path_contexts = Arc::new(vec![]);

App::new().service(
    Files::new("/", serve_dir, root_path_context, path_contexts)
        .guard(Header("Host", "example.com"))
);

Specifies custom guards to use for directory listings and files.

Default behaviour allows GET and HEAD.

Sets default handler which is used when no matched file could be found.

Trait Implementations

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Responses given by the created services.
Errors produced by the created services.
Service factory configuration.
The kind of Service created by this factory.
Errors potentially raised while building a service.
The future of the Service instance.g
Create and return a new service asynchronously.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Instruments this type with the current Span, returning an Instrumented wrapper. Read more

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Convert Self to a ServiceFactory
Should always be Self
Map this service’s output to a different type, returning a new service of the resulting type. Read more
Map this service’s error to a different error, returning a new service.
Map this factory’s init error to a different error, returning a new service.
Call another service after call to this one has resolved successfully.
The resulting type after obtaining ownership.
Creates owned data from borrowed data, usually by cloning. Read more
Uses borrowed data to replace owned data, usually by cloning. Read more
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.
Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more