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,
este módulo não é compilado por padrão;
deve ser habilitado com a
‑‑with‑http_dav_module
opção de compilação.
Em pacotes e imagens dos nossos repositórios, o módulo está incluído na compilação.
Nota
Clientes WebDAV que requerem métodos WebDAV adicionais para operar não funcionarão com este módulo.
Exemplo de Configuração#
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;
}
}
Diretivas#
create_full_put_path#
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.
dav_access#
Define permissões de acesso para arquivos e diretórios recém-criados, por exemplo:
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:
dav_access group:rw all:r;
dav_methods#
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, 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
.
min_delete_depth#
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
min_delete_depth 4;
permite remover arquivos em requisições
/users/00/00/name
/users/00/00/name/pic.jpg
/users/00/00/page.html
e nega a remoção de
/users/00/00