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, o módulo não é
compilado por padrão; ele deve ser habilitado com a opção de
compilação --with-http_dav_module.
Em pacotes e imagens de 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#
| |
Padrão |
|
http, server, location |
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. Arquivos temporários e o armazenamento persistente podem ficar em sistemas de arquivos diferentes; nesse caso, porém, o arquivo é copiado de um sistema de arquivos para o outro em vez de ser simplesmente renomeado. Por isso, para qualquer location, mantenha os arquivos salvos no mesmo sistema de arquivos que o diretório de arquivos temporários definido por client_body_temp_path.
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