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#
| |
默认值 |
|
http, server, location |
为新创建的文件和目录设置访问权限,例如:
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 方法上传的文件首先被写入临时文件,然后文件被重命名。临时文件和持久存储可以位于不同的文件系统上;但在这种情况下,文件会从一个文件系统复制到另一个文件系统,而不是通过开销很小的重命名完成。因此,对于任何给定的 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