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'(默认)时,如果 PUT 路径中指定的某个目录不存在,NGINX 会返回 403 Forbidden 错误。然而,如果启用了 'create_full_put_path',在 PUT 操作期间如果中间目录缺失,NGINX 会尝试自动创建这些目录,从而允许上传成功。这在管理文件上传时非常方便,并且可以帮助防止客户端使用 PUT 请求时因目录缺失而导致的失败。 就期望行为而言,当该指令放在 http、server 或 location 上下文中时,其行为是一致的,使其在需要文件上传的各种配置中具有灵活性。

配置示例

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

确保 NGINX 的 worker 用户具有创建目录的适当权限。

在自动创建目录时要谨慎,以避免无意中暴露敏感文件路径。

请记得确认在适当的上下文中包含此指令。