Module Webdav_netfs


module Webdav_netfs: sig .. end

WebDAV support for the Netfs API




Allows access to WebDAV in the style of Netfs.stream_fs. Netfs is part of the Ocamlnet library netstring, and provides a halfway-standard API to access various types of filesystems.

Extended stream_fs type



We support not only the basic Netfs.stream_fs API, but also the extensions of the Http_fs.http_stream_fs plus an additional method webdav_client that just returns the internal client object.

Links:


class type webdav_stream_fs = object .. end

The class


class webdav_netfs : ?tmp_directory:string -> ?tmp_prefix:string -> ?ip:Unix.inet_addr -> string -> webdav_stream_fs
val webdav_netfs : ?tmp_directory:string ->
?tmp_prefix:string ->
?ip:Unix.inet_addr -> string -> webdav_stream_fs
webdav_netfs baseurl: The path / in the access methods corresponds to the passed base_url argument (like in Webdav_client.webdav_client_t).

Paths are encoded in UTF-8.

There are no symlinks in WebDAV, so the symlink part of stream_fs remains unimplemented (methods symlink and readlink, and the symlink-specific file tests).

The path components . and .. are resolved on the client side before a URL is sent to the server (i.e. "nominal" .. resolution).

Remarks to the access methods:

Options: Use together with Webdav_client_ha as in:

        let real_url, ip = Webdav_client_ha.select_endpoint [urls] timeout in
        let netfs = Webdav_netfs.webdav_netfs ~ip real_url in ...
      

class webdav_netfs_layer : ?ip:Unix.inet_addr -> Http_fs.http_fs -> webdav_stream_fs
val webdav_netfs_layer : ?ip:Unix.inet_addr -> Http_fs.http_fs -> webdav_stream_fs
webdav_netfs_layer http_fs: Same as above, but the WebDAV protocol is added on top of an already existing http_fs.

It is required that http_fs uses UTF-8 as path encoding.

val norm_path : string -> string
val translate_status : Webdav_http.webdav_status -> string -> exn