DAV#

该模块旨在通过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;
    }
}

指令#

create_full_put_path#

语法

create_full_put_path on | off;

默认值

create_full_put_path off;

上下文

http, server, location

WebDAV规范仅允许在已存在的目录中创建文件。此指令允许创建所有需要的中间目录。

dav_access#

语法

dav_access users:permissions ...;

默认值

dav_access user:rw;

上下文

http, server, location

为新创建的文件和目录设置访问权限,例如:

dav_access user:rw group:rw all:r;

如果指定了任一组或所有访问权限,则可以省略用户权限:

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开始,临时文件和持久存储可以放在不同的文件系统上。但请注意,在这种情况下,文件是在两个文件系统之间复制,而不是便宜的重命名操作。因此建议在任何给定的 location 中,保存的文件和由 client_body_temp_path 指令设置的临时文件目录放在同一个文件系统中。

使用PUT方法创建文件时,可以通过在“Date”头字段中传递修改日期来指定。

min_delete_depth#

语法

min_delete_depth number;

默认值

min_delete_depth 0;

上下文

http, server, location

允许DELETE方法删除文件,前提是请求路径中的元素数量不小于指定的数量。例如,指令

min_delete_depth 4;

允许删除以下请求的文件

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

并拒绝删除

/users/00/00