create_full_put_path
Директива 'create_full_put_path' позволяет создавать полные пути каталогов для PUT-запросов. — NGINX HTTP Core
Описание
Директива '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 имеет соответствующие права на создание каталогов.
Будьте осторожны с автоматическим созданием каталогов, чтобы избежать непреднамеренного раскрытия путей к конфиденциальным файлам.
Не забудьте проверить включение этой директивы в соответствующий контекст.