Модуль http_dav
#
Предназначен для автоматизации задач управления файлами на сервере по протоколу WebDAV. Модуль обрабатывает HTTP- и WebDAV-методы PUT, DELETE, MKCOL, COPY и MOVE.
По умолчанию этот модуль не собирается, его сборку необходимо разрешить с помощью конфигурационного параметра ‑‑with‑http_dav_module.
В наших репозиториях модуль включен в сборку.
Важно
WebDAV-клиенты, которые требуют для работы дополнительных WebDAV-методов, не будут работать с этим модулем.
Пример конфигурации#
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;
}
}
Директивы#
create_full_put_path#
- Синтаксис:
create_full_put_path
on | off;- Умолчание:
create_full_put_path off;
- Контекст:
http, server, location
По спецификации WebDAV-метод PUT может создавать файл только в уже существующем каталоге. Данная директива разрешает создавать все необходимые промежуточные каталоги.
dav_access#
- Синтаксис:
dav_access
пользователи:права …;- Умолчание:
dav_access user:rw;
- Контекст:
http, server, location
Задаёт права доступа для создаваемых файлов и каталогов, например,
dav_access user:rw group:rw all:r;
Если заданы какие-либо права для group или all, то права для user указывать необязательно:
dav_access group:rw all:r;
dav_methods#
- Синтаксис:
dav_methods
off | метод …;- Умолчание:
dav_methods off;
- Контекст:
http, server, location
Разрешает указанные HTTP- и WebDAV-методы. Параметр off
запрещает все методы, обрабатываемые данным модулем. Поддерживаются следующие методы: PUT, DELETE, MKCOL, COPY и MOVE.
Файл, загружаемый методом PUT, записывается во временный файл, а потом этот файл переименовывается. Временный файл и его постоянное место хранения могут располагаться на разных файловых системах. Однако нужно учитывать, что в этом случае вместо дешёвой операции переименовывания в пределах одной файловой системы файл копируется с одной файловой системы на другую. Поэтому лучше, если сохраняемые файлы будут находиться на той же файловой системе, что и каталог с временными файлами, задаваемый директивой client_body_temp_path для данного location.
При создании файла с помощью метода PUT можно задать дату модификации, передав её в поле заголовка «Date».
min_delete_depth#
- Синтаксис:
min_delete_depth
число;- Умолчание:
min_delete_depth 0;
- Контекст:
http, server, location
Разрешает методу DELETE удалять файлы при условии, что число элементов в пути запроса не меньше заданного. Например, директива
min_delete_depth 4;
разрешает удалять файлы по запросам
/users/00/00/name
/users/00/00/name/pic.jpg
/users/00/00/page.html
и запрещает удаление
/users/00/00