Tiny_httpd_dirServing 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 = 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; | (* If |
_rest : hidden; | (* Just ignore this field. *) |
}configuration for static file handlers. This might get more fields over time.
val default_config : unit -> configdefault 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 -> configBuild a config from default_config.
val add_dir_path : config:config -> dir:string -> prefix:string -> Tiny_httpd_server.t -> unitadd_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.
module type VFS = sig ... endVirtual file system.
val vfs_of_dir : string -> (module VFS)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_server.t -> unitSimilar to add_dir_path but using a virtual file system instead.
module Embedded_fs : sig ... endAn 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.