Module ngx_http_dav_module

优质
小牛编辑
130浏览
2023-12-01

The ngx_http_dav_module module processes HTTP and WebDAV methods PUT, DELETE, MKCOL, COPY, and MOVE.

This module is not built by default, it should be enabled with the --with-http_dav_module configuration parameter.

Example Configuration

location / {
    root                  /data/www;

    client_body_temp_path /data/client_temp;

    dav_methods PUT DELETE MKCOL COPY MOVE;

    create_full_put_path  on;
    dav_access            group:rw  all:r;

    limit_except GET {
        allow 192.168.1.0/32;
        deny  all;
    }
}

Directives

syntax:dav_access users:permissions ...;
default:
dav_access user:rw;
context:http, server, location

Sets access permissions for newly created files and directories, e.g.:

dav_access user:rw group:rw all:r;

If any group or all access permissions are specified then user permissions may be omitted:

dav_access group:rw all:r;

syntax:dav_methods off | put | delete | mkcol | copy | move ...;
default:
dav_methods off;
context:http, server, location

Allows the specified HTTP and WebDAV methods. The parameter off denies all methods processed by this module, ignoring other parameters;

A file uploaded with the PUT method is first written to a temporary file, then a file is renamed. Starting from version 0.8.9 temporary files and the persistent store can be put on different file systems but be aware that in this case a file is copied across two file systems instead of the cheap rename operation. It is thus recommended that for any given location both saved files and a directory holding temporary files set by the client_body_temp_path directive are put on the same file system.

When creating a file with the PUT method, it is possible to specify the modification date by passing it in the “Date” header field.

syntax:create_full_put_path on | off;
default:
create_full_put_path off;
context:http, server, location

The WebDAV specification only allows to create files in already existing directories. This directive allows to create all needed intermediate directories.

syntax:min_delete_depth number;
default:
min_delete_depth 0;
context:http, server, location

Allows the DELETE method to remove files provided that the number of elements in a request path is not less than the specified. For example, the directive

min_delete_depth 4;

allows to remove files on requests

/users/00/00/name
/users/00/00/name/pic.jpg
/users/00/00/page.html

and denies the removal of

/users/00/00