create_full_put_path

Директива 'create_full_put_path' позволяет создавать полные пути каталогов для PUT-запросов. — NGINX HTTP Core

create_full_put_path
httpserverlocation
Синтаксисcreate_full_put_path on | off;
По умолчаниюoff
Контекстhttp, server, location
МодульNGINX HTTP Core
Аргументыflag

Описание

Директива 'create_full_put_path' является опцией конфигурации в NGINX, которая определяет, следует ли создавать полные пути для файлов, загружаемых клиентом, во время PUT-запросов. Когда установлено значение 'on', NGINX не только создаст целевой файл, указанный в PUT-запросе, но и обеспечит существование всех каталогов, ведущих к этому целевому файлу. Это особенно важно в сценариях, когда клиенты могут пытаться загружать файлы в пути, которые ранее не были созданы на сервере, что повышает надёжность обработки загрузок файлов, гарантируя наличие необходимой структуры каталогов. Если директива установлена в 'off' (по умолчанию), NGINX вернёт 403 Forbidden, если каталог, указанный в пути PUT, не существует. Однако при включённой 'create_full_put_path' во время операции PUT, если промежуточные каталоги отсутствуют, NGINX попытается автоматически создать их, позволяя загрузке завершиться успешно. Это может значительно упростить управление загрузками и помочь предотвратить ошибки из‑за отсутствующих каталогов при использовании клиентами PUT-запросов. С точки зрения ожидаемого поведения, когда эта директива размещена в контекстах http, server или location, она функционирует одинаково во всех случаях, что делает её гибкой для различных конфигураций, где ожидаются загрузки файлов.

Пример конфига

location /uploads {
    create_full_put_path on;
    root /var/www;
}

Убедитесь, что пользователь worker в NGINX имеет соответствующие права на создание каталогов.

Будьте осторожны с автоматическим созданием каталогов, чтобы избежать непреднамеренного раскрытия путей к конфиденциальным файлам.

Не забудьте проверить включение этой директивы в соответствующий контекст.