【发布时间】:2019-01-06 17:13:58
【问题描述】:
我正在使用 nginx 上传模块将文件上传到服务器。但我希望 nginx 上传到不同的路径,而不是 upload_store 中提到的路径。 所以我正在使用 nginx-lua 模块来更改每个请求的 upload_store 值,如下所示。
location /umtest {
upload_pass /nginx_response;
set $upload_store '';
rewrite_by_lua '
local header = ngx.req.raw_header()
ngx.say("type header",header)
dst_path_dir = ngx.req.get_headers()["Dst-Dir"]
ngx.say("dst_path_dir",dst_path_dir)
ngx.var.upload_store = dst_path_dir
ngx.say("upload store path" ,ngx.var.upload_store)
';
upload_set_form_field $upload_field_name.name
"$upload_file_name";
upload_set_form_field $upload_field_name.content_type
"$upload_content_type";
upload_set_form_field $upload_field_name.path
"$upload_tmp_path"
upload_cleanup 400 404 499 500-505;
}
现在,当我 POST 到“/umtest”时,它会更改 upload_store 的值,但不会执行 nginx 上传指令(即不会发生上传)。当我评论 rewrite_by_lua 指令时,就会发生上传。 我的问题是我们不能同时使用两者来达到目的吗?
【问题讨论】:
-
你试过删除所有
ngx.say行吗?
标签: nginx file-upload lua upload