DAV-Ext#
This module extends WebDAV support with the PROPFIND, OPTIONS, LOCK, and UNLOCK methods.
The standard DAV module provides a partial implementation of
WebDAV and supports only the GET, HEAD, PUT, DELETE, MKCOL, COPY, and MOVE methods.
For full WebDAV support, you need to enable the standard
http_dav_module module, as well as this module for the missing methods.
Installation#
To install the module, use one of the following packages:
Angie:
angie-module-dav-extAngie PRO:
angie-pro-module-dav-ext
Loading the Module#
Load the module in the main{} context:
load_module modules/ngx_http_dav_ext_module.so;
Configuration Example#
dav_ext_lock_zone zone=lock_zone:10m;
server {
listen 80 default_server;
location / {
root /usr/share/angie/html;
dav_methods PUT DELETE MKCOL COPY MOVE;
dav_ext_methods PROPFIND OPTIONS LOCK UNLOCK;
dav_ext_lock zone=lock_zone;
}
}
Request Execution Examples#
Uploading a file to the server:
$ curl -i -X PUT -d @testf1.txt http://127.0.0.1/testf1.txt
HTTP/1.1 201 Created
Server: Angie/1.12.0
Date: Mon, 13 Jul 2026 19:15:35 GMT
Content-Length: 0
Location: http://127.0.0.1/testf1.txt
Connection: keep-alive
Overwriting the same file:
$ curl -i -X PUT -d @testf1.txt http://127.0.0.1/testf1.txt
HTTP/1.1 204 No Content
Server: Angie/1.12.0
Date: Mon, 13 Jul 2026 19:15:35 GMT
Connection: keep-alive
Locking the file from being overwritten:
$ curl -i -X LOCK http://127.0.0.1/testf1.txt
HTTP/1.1 200 OK
Server: Angie/1.12.0
Date: Mon, 13 Jul 2026 19:15:35 GMT
Content-Type: text/xml; charset=utf-8
Content-Length: 392
Connection: keep-alive
Lock-Token: <urn:7502d56f>
Attempting to overwrite the file:
$ curl -i -X PUT -d @testf1.txt http://127.0.0.1/testf1.txt
HTTP/1.1 423
Server: Angie/1.12.0
Date: Mon, 13 Jul 2026 19:15:35 GMT
Content-Length: 0
Connection: keep-alive
The file is locked. Unlocking the file:
$ curl -i -X UNLOCK -H 'Lock-Token: <urn:7502d56f>' http://127.0.0.1/testf1.txt
HTTP/1.1 204 No Content
Server: Angie/1.12.0
Date: Mon, 13 Jul 2026 19:15:35 GMT
Connection: keep-alive
Overwriting the file:
$ curl -i -X PUT -d @testf1.txt http://127.0.0.1/testf1.txt
HTTP/1.1 204 No Content
Server: Angie/1.12.0
Date: Mon, 13 Jul 2026 19:15:35 GMT
Connection: keep-alive
The file has been successfully unlocked and overwritten.
Additional Information#
Version: v4.0.1
Detailed documentation and source code are available at: arut/nginx-dav-ext-module