模块 ngx_http_dav_module
示例配置 指令 create_full_put_path dav_access dav_methods min_delete_depth |
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 off; |
上下文 |
http 、server 、location |
WebDAV 规范只允许在已存在的目录中创建文件。此指令允许创建所有必要的中间目录。
语法 |
dav_access |
---|---|
默认值 |
dav_access user:rw; |
上下文 |
http 、server 、location |
设置新创建文件和目录的访问权限,例如
dav_access user:rw group:rw all:r;
如果指定了任何 group
或 all
访问权限,则可以省略 user
权限
dav_access group:rw all:r;
语法 |
dav_methods |
---|---|
默认值 |
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 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