Legend:
Library
Module
Module type
Parameter
Class
Class type
Library
Module
Module type
Parameter
Class
Class type
Serving static content from directories
This module provides the same functionality as the "http_of_dir" tool. It exposes a directory (and its subdirectories), with the optional ability to delete or upload files.
type dir_behavior =
| Index
Redirect to index.html if present, else fails.
*)| Lists
Lists content of directory. Be careful of security implications.
*)| Index_or_lists
Redirect to index.html if present and lists content otherwise. This is useful for tilde ("~") directories and other per-user behavior, but be mindful of security implications
*)| Forbidden
Forbid access to directory. This is suited for serving assets, for example.
*)behavior of static directory.
This controls what happens when the user requests the path to a directory rather than a file.
type config = {
mutable download : bool;
Is downloading files allowed?
*)mutable dir_behavior : dir_behavior;
Behavior when serving a directory and not a file
*)mutable delete : bool;
Is deleting a file allowed? (with method DELETE)
*)mutable upload : bool;
Is uploading a file allowed? (with method PUT)
*)mutable max_upload_size : int;
}
configuration for static file handlers
val default_config : unit -> config
default configuration:
{ download=true
; dir_behavior=Forbidden
; delete=false
; upload=false
; max_upload_size = 10 * 1024 * 1024
}
val add_dir_path :
config:config ->
dir:string ->
prefix:string ->
Tiny_httpd.t ->
unit
add_dirpath ~config ~dir ~prefix server
adds route handle to the server
to serve static files in dir
when url starts with prefix
, using the given configuration config
.