【发布时间】:2018-05-30 13:47:13
【问题描述】:
我创建了一个内部网 http 站点,用户可以在其中上传文件,我创建了一个类似这样的位置:
location /upload/ {
limit_except POST { deny all; }
client_body_temp_path /home/nginx/tmp;
client_body_in_file_only on;
client_body_buffer_size 1M;
client_max_body_size 10G;
proxy_set_header X-upload /upload/;
proxy_set_header X-File-Name $request_body_file;
proxy_set_body $request_body_file;
proxy_redirect off;
proxy_pass_request_headers on;
proxy_pass http://localhost:8080/;
}
按照官方文档中的建议非常简单。上传完成后,proxy_pass 指令调用自定义 URI 并对新创建的临时文件进行文件系统操作。
curl --request POST --data-binary "@myfile.img" http://myhost/upload/
这是我的问题:我需要某种自定义钩子/操作来告诉我何时开始上传,nginx 可以在 启动 http 流之前调用某些东西,有没有办法实现这一点?我的意思是,在上传大文件之前,我需要调用一个自定义 url(类似于proxy_pass)来通知服务器有关此上传并执行某些操作。
有没有办法实现它?我尝试过使用 echo-nginx 模块,但这些 http POST(二进制形式-urlencoded)没有成功。我不想使用外部脚本来处理上传并将这些操作保留在 nginx 中(性能更高)
提前致谢。
本
【问题讨论】:
标签: nginx file-upload hook