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

指令

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 版本开始,临时文件和持久存储可以放在不同的文件系统上。但是,请注意,在这种情况下,文件是跨两个文件系统复制的,而不是廉价的重命名操作。因此,建议对于任何给定位置,将保存的文件和保存临时文件的目录(由 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
说说我的看法
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号