nginx中文文档-ngx_http_dav_module

ngx_http_dav_module模块是为通过WebDAV协议自动管理文件而设计的,该模块处理HTTP和WebDAV的请求方法PUT、DELETE、MKCOL、COPY和MOVE。默认情况下,该模块不会构建,需要使用编译参数–with-http_dav_module开启。
需要额外WebDAV方法的WebDAV客户端操作在该模块中不会起作用。

示例配置

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;
    }
}

dav_access

语法:dav_access users:permissions
默认:dav_access user:rw
上下文:http, server, location

设置新创建的文件及目录的访问权限,如:
dav_access user:rw group:rw all:r;
如果定义了group或all的权限,user的权限可以被省略:
dav_access group:rw all:r;

dav_methods

语法:dav_methods off | method
默认:dav_methods off
上下文: http, server, location

允许指定的HTTP和WebDAV方法,参数off禁止该模块处理所有的方法。支持以下几种方法:PUT、DELETE、MKCOL、COPY和MOVE。
通过PUT方法上传的文件,首先会存到临时文件中,然后再重命名。从0.8.9版本开始,临时文件和持久化存储的文件可以在不同的文件系统中。但要知道的是,这样做会使文件在不同的文件系统中进行复制而不是简单的重命名。因此建议通过client_body_temp_path指令给出保存临时文件和永久文件的目录位置,并放置在同一个文件系统下。
当通过PUT方法创建文件时,可以通过“Date”头域设置文件的修改时间。

create_full_put_path

语法:create_full_put_path on | off
默认:create_full_put_path off
上下文:http, server, location

WebDAV规定只能在已存在的目录下创建文件,该指令会创建所有需要的目录。

min_delete_depth

语法:min_delete_depth number
默认:min_delete_depth 0
上下文:http, server, location

允许DELETE方法删除文件位置的层级数,删除的层级数不小于给出的值,例如:
min_delete_depth 4
允许删除:

/users/00/00/name(4级)
/users/00/00/name/pic.jpg(5级)
/users/00/00/page.html(4级)

禁止删除:

/users/00/00(3级)