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#
WebDAV规范仅允许在已存在的目录中创建文件。此指令允许创建所有需要的中间目录。
dav_access#
为新创建的文件和目录设置访问权限,例如:
dav_access user:rw group:rw all:r;
如果指定了任一组或所有访问权限,则可以省略用户权限:
dav_access group:rw all:r;
dav_methods#
允许指定的HTTP和WebDAV方法。参数off拒绝所有此模块处理的方法。支持以下方法:PUT、DELETE、MKCOL、COPY和MOVE。
使用PUT方法上传的文件首先被写入临时文件,然后文件被重命名。从版本0.8.9开始,临时文件和持久存储可以放在不同的文件系统上。但请注意,在这种情况下,文件是在两个文件系统之间复制,而不是便宜的重命名操作。因此建议在任何给定的 location 中,保存的文件和由 client_body_temp_path 指令设置的临时文件目录放在同一个文件系统中。
使用PUT方法创建文件时,可以通过在“Date”头字段中传递修改日期来指定。
min_delete_depth#
允许DELETE方法删除文件,前提是请求路径中的元素数量不小于指定的数量。例如,指令
min_delete_depth 4;
允许删除以下请求的文件
/users/00/00/name
/users/00/00/name/pic.jpg
/users/00/00/page.html
并拒绝删除
/users/00/00