让nginx提供带有像http://foobar.tld/<random_dir>/<file_md5sum_as_filename>
这样的url的静态文件,我希望如果我在url的末尾指定?f="filename.filetype"
- nginx在末尾解析该查询字符串(如果指定)并准备新内容,释放匹配的指定参数,并且没有任何动态后端,这是不可能的。
或实例http://foobar.tld/<random_dir>/<file_md5sum_as_filename>?f="foobar.pdf"
这样的事情可以用nginx/lua模块完成吗?有没有人有任何有用的例子或做过类似的事情?
Pure Nginx 配置
location / {
if ($arg_f) {
add_header Content-Disposition "attachment; filename=$arg_f";
}
}
这在nginx-lua中确实是可能的;特别是header_filter_by_lua指令。
像下面这样的东西应该可以解决问题:
location / {
header_filter_by_lua '
local args = ngx.req.get_uri_args()
if not args.f then return end
ngx.header["Content-Disposition"] = "attachment; filename=" .. args.f
';
}