如何根据代理响应有条件地在 nginx 中提供静态文件?

How to serve static files in nginx conditionally based on proxy response?

我有一个文件夹 /static/uploads/limited,我需要配置 nginx 来为特定用户提供一些文件。我也有一个 API /api/auth/canIDownloadThis 响应 json 喜欢

{
  "result:"true"
}

如何让 nginx 在提供特定文件夹之前检查我的 API proxy_pass 的响应?

我需要的伪代码是这样的:

location /static/uploads/limited{
    IF /api/canIdownloadThis IS TRUE
    THEN alias /my_secret_folder_path
} 

因为我不想使用 basic_auth。谢谢。

感谢@stephenKing,我需要用 --with-http_auth_request_module 编译 nginx,然后创建一个 API 来响应 403200

location ~* /(\w+)/static/limited/(?:/_[\d]+\.[\d]+\.[\d]+)?/(.*)$ 
{
    auth_request /IC/contents/can_i_access_limited;
    alias /home/A/iB-system/C//static/uploads/;
   }