<!-- review: finished -->

<a id="http-dav"></a>

# DAV

Предназначен для автоматизации задач управления файлами на сервере по протоколу WebDAV. Модуль обрабатывает HTTP- и WebDAV-методы PUT, DELETE, MKCOL, COPY и MOVE.

При [сборке из исходного кода](https://angie.software//angie/docs/installation/sourcebuild.md#sourcebuild) модуль не собирается по умолчанию; его необходимо
включить с помощью [параметра сборки](https://angie.software//angie/docs/installation/sourcebuild.md#configure)
`‑‑with‑http_dav_module`.
В пакетах и образах из
[наших репозиториев](https://angie.software//angie/docs/installation/index.md#install-packages)
модуль включен в сборку.

#### NOTE
WebDAV-клиенты, которые требуют для работы дополнительных WebDAV-методов, не будут работать с этим модулем.

<a id="configuration-example-11"></a>

## Пример конфигурации

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

<a id="directives-12"></a>

## Директивы

<a id="index-0"></a>

<a id="create-full-put-path"></a>

### create_full_put_path

| [Синтаксис](https://angie.software//angie/docs/configuration/configfile.md#configfile)   | `create_full_put_path` `on` | `off`;   |
|------------------------------------------------------------------------------------------|----------------------------------------|
| По умолчанию                                                                             | `create_full_put_path off;`            |
| [Контекст](https://angie.software//angie/docs/configuration/configfile.md#configfile)    | http, server, location                 |

По спецификации WebDAV-метод PUT может создавать файл только в уже существующем каталоге. Данная директива разрешает создавать все необходимые промежуточные каталоги.

<a id="index-1"></a>

<a id="dav-access"></a>

### dav_access

| [Синтаксис](https://angie.software//angie/docs/configuration/configfile.md#configfile)   | `dav_access` пользователи:права ...;   |
|------------------------------------------------------------------------------------------|----------------------------------------|
| По умолчанию                                                                             | `dav_access user:rw;`                  |
| [Контекст](https://angie.software//angie/docs/configuration/configfile.md#configfile)    | http, server, location                 |

Задает права доступа для создаваемых файлов и каталогов, например,

```nginx
dav_access user:rw group:rw all:r;
```

Если заданы какие-либо права для group или all, то права для user указывать необязательно:

```nginx
dav_access group:rw all:r;
```

<a id="index-2"></a>

<a id="dav-methods"></a>

### dav_methods

| [Синтаксис](https://angie.software//angie/docs/configuration/configfile.md#configfile)   | `dav_methods` `off` | метод ...;   |
|------------------------------------------------------------------------------------------|------------------------------------|
| По умолчанию                                                                             | `dav_methods off;`                 |
| [Контекст](https://angie.software//angie/docs/configuration/configfile.md#configfile)    | http, server, location             |

Разрешает указанные HTTP- и WebDAV-методы. Параметр `off` запрещает все методы, обрабатываемые данным модулем. Поддерживаются следующие методы: PUT, DELETE, MKCOL, COPY и MOVE.

Файл, загружаемый методом PUT, записывается во временный файл, а потом этот файл переименовывается. Временный файл и его постоянное место хранения могут располагаться на разных файловых системах. Однако нужно учитывать, что в этом случае вместо дешевой операции переименовывания в пределах одной файловой системы файл копируется с одной файловой системы на другую. Поэтому лучше, если сохраняемые файлы будут находиться на той же файловой системе, что и каталог с временными файлами, задаваемый директивой [client_body_temp_path](https://angie.software//angie/docs/configuration/modules/http/index.md#client-body-temp-path) для данного `location`.

При создании файла с помощью метода PUT можно задать дату модификации, передав ее в поле заголовка `Date`.

<a id="index-3"></a>

<a id="min-delete-depth"></a>

### min_delete_depth

| [Синтаксис](https://angie.software//angie/docs/configuration/configfile.md#configfile)   | `min_delete_depth` число;   |
|------------------------------------------------------------------------------------------|-----------------------------|
| По умолчанию                                                                             | `min_delete_depth 0;`       |
| [Контекст](https://angie.software//angie/docs/configuration/configfile.md#configfile)    | http, server, location      |

Разрешает методу DELETE удалять файлы при условии, что число элементов в пути запроса не меньше заданного. Например, директива

```nginx
min_delete_depth 4;
```

разрешает удалять файлы по запросам

```console
/users/00/00/name
/users/00/00/name/pic.jpg
/users/00/00/page.html
```

и запрещает удаление

```console
/users/00/00
```
