如何在Nginx中使用Postgres和静态文件操作

时间:2015-05-31 16:12:01

标签: postgresql nginx

我想使用Nginx作为文件托管系统的CDN。我看到了一个很棒的nginx模块,它允许postgres连接(https://github.com/FRiCKLE/ngx_postgres)它工作得非常好,但是当我尝试使用它时有alias指令它似乎忽略别名或文件下载而是给我一个空文件。 我的想法是,使用URL中的UUID并找到执行查询的正确文件,然后使用找到的详细信息更改文件名标题,以便用户的客户端将下载自动将名称设置为原始文件名而不是一个uuid。

这是代码。

    location /dl{
        postgres_output none;
        postgres_pass   database;
        postgres_query  "SELECT * FROM \"Files\" WHERE uuid = '$args'";
        postgres_set $filename 0 name;



        alias /home/ubuntu/fileStorage;
        add_header Content-Disposition "attachment; filename=$filename";

    }

我认为postgres指令不知何故锁定了这个块。有没有办法在不影响下载块的情况下运行postgres查询?

1 个答案:

答案 0 :(得分:0)

似乎你期待这条线

add_header Content-Disposition "attachment; filename=$filename";

将导致浏览器下载$filename给出的文件。这不是Content-Disposition标头的工作方式,它只是告诉浏览器将响应主体解释为文件。您将不得不做一些额外的事情来获取客户端的正确内容。也许您真正想要的是发布重定向?