module Ocsigen_local_files:sig
..end
val section : Lwt_log_core.section
use Lwt_log.Section.set_level in order to debug
exception Failed_404
The requested file does not exists
exception Failed_403
The requested file cannot be served: does not exists, not enough permissions ...
exception NotReadableDirectory
The file is a directory which we should not display
type
resolved =
| |
RFile of |
| |
RDir of |
Local file corresponding to a request. The string argument represents the real file or directory to serve, eg. foo/index.html instead of foo
val resolve : ?no_check_for:string ->
request:Ocsigen_extensions.request ->
filename:string -> unit -> resolved
Finds filename
in the filesystem, with a possible redirection
if it is a directory. Takes into account the fact that filename
does not exists, is a symlink or is a directory, and raises
Failed_404 or Failed_403 accordingly.
"filename/index.html"
if filename
corresponds to
a directory, "filename/index.html"
is valid, and "index.html"
is one possible index (trying all possible indexes in order)Failed_404
if filename
corresponds to a directory,
no index exists and list_dir_content
is false.
Warning: this behaviour is not the same as Apache's but it corresponds
to a missing service in Eliom (answers 404). This also allows to have
an Eliom service after a "forbidden" directoryFailed_403
if filename
is a symlink that must
not be followedFailed_404
if filename
does not exist, or is a special filefilename
no_check_for
is supposed to be a prefix of filename
;
directories above no_check_for
are not checked for symlinks