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#

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

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

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