package tiny_httpd
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=67c636f1bbaf93da0cb0a12cb44803299892caf51e637815c753f0af6f4e7b7e
sha512=c254415a69df5a1bec255a223dbc2d10370b2f533da0b14ff458545da7aa5e4a634972272e7eef64425b6360494d6b3446761c03b49fd7558765cbfefae2178b
doc/tiny_httpd.unix/Tiny_httpd_unix/Dir/index.html
Module Tiny_httpd_unix.Dir
Source
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 used to prevent users from building a config directly. Use default_config
or config
instead.
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;
_rest : hidden;
(*Just ignore this field.
*)
}
configuration for static file handlers. This might get more fields over time.
default configuration: { download=true ; dir_behavior=Forbidden ; delete=false ; upload=false ; max_upload_size = 10 * 1024 * 1024 }
val config :
?download:bool ->
?dir_behavior:dir_behavior ->
?delete:bool ->
?upload:bool ->
?max_upload_size:int ->
unit ->
config
Build a config from default_config
.
val add_dir_path :
config:config ->
dir:string ->
prefix:string ->
Tiny_httpd_core.Server.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
.
vfs_of_dir dir
makes a virtual file system that reads from the disk.
val add_vfs :
config:config ->
vfs:(module VFS) ->
prefix:string ->
Tiny_httpd_core.Server.t ->
unit
Similar to add_dir_path
but using a virtual file system instead.
An embedded file system, as a list of files with (relative) paths. This is useful in combination with the "tiny-httpd-mkfs" tool, which embeds the files it's given into a OCaml module.