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.
Cuando compilar desde el código fuente,
este módulo no se compila por defecto;
debe habilitarse con la opción de compilación
‑‑with‑http_dav_module
build option.
En paquetes e imágenes de nuestros repositorios, el módulo está incluido en la compilación.
Nota
Los clientes WebDAV que requieren métodos WebDAV adicionales para funcionar no funcionarán con este módulo.
Ejemplo de Configuración#
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;
}
}
Directivas#
create_full_put_path#
| |
Predeterminado |
|
http, server, location |
La especificación WebDAV solo permite crear archivos en directorios ya existentes. Esta directiva permite crear todos los directorios intermedios necesarios.
dav_access#
| |
Predeterminado |
|
http, server, location |
Establece permisos de acceso para archivos y directorios recién creados, por ejemplo:
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:
dav_access group:rw all:r;
dav_methods#
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, 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
.
min_delete_depth#
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
min_delete_depth 4;
permite eliminar archivos en las solicitudes
/users/00/00/name
/users/00/00/name/pic.jpg
/users/00/00/page.html
y deniega la eliminación de
/users/00/00