使用Lua和Nginx从POST头部提取目标路径

我正在使用nginx上传文件。我已经安装了openresty模块来支持ngx lua。在上传文件时,我需要将upload_store变量更改为接收的POST头部中的路径。因此,我想使用lua来更改nginx.conf中的upload_store指令值。我正在尝试从头中获取Dst-Dir,如下所示:

location /umtest {
            set $upload_store /mnt/share_marvel/uploaded_files;
            rewrite_by_lua '
                local header = ngx.req.raw_header()
                ngx.say("type header",header)
                dst_path_dir = #需要从头中提取
                ngx.var.upload_store = dst_path_dir
                ngx.say("upload store path",ngx.var.upload_store)

             ';

从ngx.req.raw_header()接收到的标题是

POST /umtest HTTP/1.1
Host: X.X.X.X:8888
Connection: keep-alive
Content-Length: 0
Cache-Control: no-cache
Dst-Dir : "/path/to/upload"
Origin: chrome-extension://fhbjgbiflinjbdggehcddcbncdddomop
Accept: */*
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9

我如何提取Dst-Dir的值,以便我可以将该值设置为upload_store? 我对lua相当陌生。

点赞
用户1135424
用户1135424

可以尝试使用ngx.req.get_headers(),例如:

dst_path_dir = ngx.req.get_headers()["Dst-Dir"]
2018-07-26 08:51:40