模块 ngx_http_dav_module

create_full_put_path
dav_access
dav_methods
min_delete_depth配置
Directives
示例

ngx_http_dav_modulemodule 用于文件 通过 WebDAV 协议实现管理自动化。 该模块处理 HTTP 和 WebDAV 方法 PUT、DELETE、MKCOL、COPY 和 MOVE。

这个模块不是默认构建的,它应该使用--with-http_dav_moduleconfiguration 参数。

需要其他 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;
    }
}

Directives

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

WebDAV 规范只允许在 existing 目录。 该Directives允许创建所有需要的中间目录。

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

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

dav_access user:rw group:rw all:r;

如果有groupall访问权限 指定user权限可以省略:

dav_access group:rw all:r;

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

允许指定的 HTTP 和 WebDAV 方法。 参数off拒绝所有已处理的方法 通过此模块。 支持以下方法:PUT,DELETE,MKCOL,COPYMOVE.

使用 PUT 方法上传的文件首先写入临时文件 ,然后重命名文件。 从版本 0.8.9 开始,临时文件和持久化存储 可以放在不同的文件系统上。 但是,请注意,在这种情况下,文件会被复制 跨两个文件系统,而不是廉价的重命名作。 因此,建议对于任何给定位置,保存的文件和 目录保存临时文件(由 client_body_temp_path Directives设置)放在同一个文件系统上。

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

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

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

min_delete_depth 4;

允许根据请求删除文件

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

并否认删除了

/users/00/00