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#

Sintaxe

create_full_put_path on | off;

Padrão

create_full_put_path off;

Contexto

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.

dav_access#

Sintaxe

dav_access usuários:permissões [usuários:permissões] [usuários:permissões];

Padrão

dav_access user:rw;

Contexto

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#

Sintaxe

dav_methods off | método ...;

Padrão

dav_methods off;

Contexto

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. 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#

Sintaxe

min_delete_depth número;

Padrão

min_delete_depth 0;

Contexto

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

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