3

nginxがURLのような静的ファイルを提供し、URLhttp://foobar.tld/<random_dir>/<file_md5sum_as_filename>の最後に指定した場合-nginxは最後に?f="filename.filetype"そのクエリ文字列を解析し(指定されている場合)、指定された引数に一致する新しいコンテンツを準備し、不可能なような動的バックエンドなし。

またはインスタンスhttp://foobar.tld/<random_dir>/<file_md5sum_as_filename>?f="foobar.pdf"

このようなことはnginx/luaモジュールで実行できますか?誰かが有用な例を持っているか、または同様のことをしましたか?

4

2 に答える 2

9

純粋なNginx構成

location / {
  if ($arg_f) {
    add_header Content-Disposition "attachment; filename=$arg_f";
  }
}
于 2012-11-30T08:43:25.293 に答える
3

これは確かに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
  ';
}
于 2012-11-30T08:13:03.157 に答える