<!-- review: finished -->

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

# DAV

O módulo é destinado à automação do gerenciamento de arquivos via protocolo WebDAV. O módulo processa métodos HTTP e WebDAV PUT, DELETE, MKCOL, COPY e MOVE.

Ao [compilar a partir do código fonte](https://pt.angie.software//angie/docs/installation/sourcebuild.md#sourcebuild),
este módulo não é compilado por padrão;
deve ser habilitado com a
`‑‑with‑http_dav_module`
[opção de compilação](https://pt.angie.software//angie/docs/installation/sourcebuild.md#configure).

Em pacotes e imagens dos [nossos repositórios](https://pt.angie.software//angie/docs/installation/index.md#install-packages),
o módulo está incluído na compilação.

#### NOTE
Clientes WebDAV que requerem métodos WebDAV adicionais para operar não funcionarão com este módulo.

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

## Exemplo de Configuração

```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>

## Diretivas

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

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

### create_full_put_path

| [Sintaxe](https://pt.angie.software//angie/docs/configuration/configfile.md#configfile)   | `create_full_put_path` `on` | `off`;   |
|-------------------------------------------------------------------------------------------|----------------------------------------|
| Padrão                                                                                    | `create_full_put_path off;`            |
| [Contexto](https://pt.angie.software//angie/docs/configuration/configfile.md#configfile)  | http, server, location                 |

A especificação WebDAV permite apenas criar arquivos em diretórios já existentes. Esta diretiva permite criar todos os diretórios intermediários necessários.

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

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

### dav_access

| [Sintaxe](https://pt.angie.software//angie/docs/configuration/configfile.md#configfile)   | `dav_access` usuários:permissões ...;   |
|-------------------------------------------------------------------------------------------|-----------------------------------------|
| Padrão                                                                                    | `dav_access user:rw;`                   |
| [Contexto](https://pt.angie.software//angie/docs/configuration/configfile.md#configfile)  | http, server, location                  |

Define permissões de acesso para arquivos e diretórios recém-criados, por exemplo:

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

Se quaisquer permissões de acesso de grupo ou todos forem especificadas, então as permissões de usuário podem ser omitidas:

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

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

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

### dav_methods

| [Sintaxe](https://pt.angie.software//angie/docs/configuration/configfile.md#configfile)   | `dav_methods` `off` | método ...;   |
|-------------------------------------------------------------------------------------------|-------------------------------------|
| Padrão                                                                                    | `dav_methods off;`                  |
| [Contexto](https://pt.angie.software//angie/docs/configuration/configfile.md#configfile)  | http, server, location              |

Permite os métodos HTTP e WebDAV especificados. O parâmetro `off` nega todos os métodos processados por este módulo. Os seguintes métodos são suportados: PUT, DELETE, MKCOL, COPY e MOVE.

Um arquivo enviado com o método PUT é primeiro escrito em um arquivo temporário, e então o arquivo é renomeado. A partir da versão 0.8.9, arquivos temporários e o armazenamento persistente podem ser colocados em sistemas de arquivos diferentes. No entanto, esteja ciente de que neste caso um arquivo é copiado entre dois sistemas de arquivos em vez da operação barata de renomeação. É assim recomendado que para qualquer `location` dado tanto os arquivos salvos quanto um diretório contendo arquivos temporários, definido pela diretiva [client_body_temp_path](https://pt.angie.software//angie/docs/configuration/modules/http/index.md#client-body-temp-path), sejam colocados no mesmo sistema de arquivos.

Ao criar um arquivo com o método PUT, é possível especificar a data de modificação passando-a no campo de cabeçalho `Date`.

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

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

### min_delete_depth

| [Sintaxe](https://pt.angie.software//angie/docs/configuration/configfile.md#configfile)   | `min_delete_depth` número;   |
|-------------------------------------------------------------------------------------------|------------------------------|
| Padrão                                                                                    | `min_delete_depth 0;`        |
| [Contexto](https://pt.angie.software//angie/docs/configuration/configfile.md#configfile)  | http, server, location       |

Permite que o método DELETE remova arquivos desde que o número de elementos em um caminho de requisição não seja menor que o número especificado. Por exemplo, a diretiva

```nginx
min_delete_depth 4;
```

permite remover arquivos em requisições

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

e nega a remoção de

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