<!-- review: finished -->

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

# DAV

Este módulo está destinado a la automatización de la gestión de archivos a través del protocolo WebDAV. El módulo procesa los métodos HTTP y WebDAV PUT, DELETE, MKCOL, COPY y MOVE.

Al [compilar desde el código fuente](https://es.angie.software//angie/docs/installation/sourcebuild.md#sourcebuild),
este módulo no se compila por defecto;
debe habilitarse con la
`‑‑with‑http_dav_module`
[opción de compilación](https://es.angie.software//angie/docs/installation/sourcebuild.md#configure).

En paquetes e imágenes de [nuestros repositorios](https://es.angie.software//angie/docs/installation/index.md#install-packages),
el módulo está incluido en la compilación.

#### NOTE
Los clientes WebDAV que requieren métodos WebDAV adicionales para funcionar no funcionarán con este módulo.

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

## Ejemplo de configuración

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

## Directivas

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

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

### create_full_put_path

| [Sintaxis](https://es.angie.software//angie/docs/configuration/configfile.md#configfile)   | `create_full_put_path` `on` | `off`;   |
|--------------------------------------------------------------------------------------------|----------------------------------------|
| Predeterminado                                                                             | `create_full_put_path off;`            |
| [Contexto](https://es.angie.software//angie/docs/configuration/configfile.md#configfile)   | http, server, location                 |

La especificación WebDAV solo permite crear archivos en directorios ya existentes. Esta directiva permite crear todos los directorios intermedios necesarios.

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

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

### dav_access

| [Sintaxis](https://es.angie.software//angie/docs/configuration/configfile.md#configfile)   | `dav_access` users:permissions ...;   |
|--------------------------------------------------------------------------------------------|---------------------------------------|
| Predeterminado                                                                             | `dav_access user:rw;`                 |
| [Contexto](https://es.angie.software//angie/docs/configuration/configfile.md#configfile)   | http, server, location                |

Establece permisos de acceso para archivos y directorios recién creados, por ejemplo:

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

Si se especifican permisos de acceso para grupo o para todos, los permisos de usuario pueden omitirse:

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

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

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

### dav_methods

| [Sintaxis](https://es.angie.software//angie/docs/configuration/configfile.md#configfile)   | `dav_methods` `off` | method ...;   |
|--------------------------------------------------------------------------------------------|-------------------------------------|
| Predeterminado                                                                             | `dav_methods off;`                  |
| [Contexto](https://es.angie.software//angie/docs/configuration/configfile.md#configfile)   | http, server, location              |

Permite los métodos HTTP y WebDAV especificados. El parámetro `off` deniega todos los métodos procesados por este módulo. Se admiten los siguientes métodos: PUT, DELETE, MKCOL, COPY y MOVE.

Un archivo cargado con el método PUT se escribe primero en un archivo temporal y luego se renombra. A partir de la versión 0.8.9, los archivos temporales y el almacenamiento persistente pueden colocarse en diferentes sistemas de archivos. Sin embargo, tenga en cuenta que en ese caso, un archivo se copia a través de dos sistemas de archivos en lugar de la operación barata de renombrado. Por lo tanto, se recomienda que para cualquier `location` dado, tanto los archivos guardados como el directorio que contiene archivos temporales, establecido por la directiva [client_body_temp_path](https://es.angie.software//angie/docs/configuration/modules/http/index.md#client-body-temp-path), se coloquen en el mismo sistema de archivos.

Al crear un archivo con el método PUT, es posible especificar la fecha de modificación pasándola en el campo de encabezado `Date`.

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

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

### min_delete_depth

| [Sintaxis](https://es.angie.software//angie/docs/configuration/configfile.md#configfile)   | `min_delete_depth` number;   |
|--------------------------------------------------------------------------------------------|------------------------------|
| Predeterminado                                                                             | `min_delete_depth 0;`        |
| [Contexto](https://es.angie.software//angie/docs/configuration/configfile.md#configfile)   | http, server, location       |

Permite que el método DELETE elimine archivos siempre que el número de elementos en la ruta de la solicitud no sea menor que el especificado. Por ejemplo, la directiva

```nginx
min_delete_depth 4;
```

permite eliminar archivos en las solicitudes

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

y deniega la eliminación de

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