Proxing S3 запрос на аутентификацию с использованием nginx - PullRequest
0 голосов
/ 03 сентября 2018

Я пытаюсь получить доступ к частному S3 с компьютера EC2, но использую только curl. Поэтому я пытаюсь создать прокси-сервер, используя nginx и lua, которые будут вызывать метаданные apis, получать маркер авторизации и устанавливать заголовки в proxy_pass.

 location  /download/ {
      set $date  '';
      set $token  '';
      set $authorization '';

      content_by_lua_block {

        % some code %

        ngx.var.date = date;
        ngx.var.token = awsToken;
        ngx.var.authorization = authorization;

      }

      proxy_set_header Date $date;
      proxy_set_header X-AMZ-Security-Token  $token;
      proxy_set_header Authorization  $authorization;
      proxy_pass "https://nisingla-ethos.s3.amazonaws.com/";
    }

Однако, когда я проверяю переменную даты за пределами content_by_lua_block, ее значение не устанавливается. Может кто-нибудь помочь мне с этой проблемой.

PS: я пробовал другой метод использования политики корзины и конечной точки vpc, но из-за некоторых ограничений они не будут работать для меня.

1 Ответ

0 голосов
/ 18 октября 2018

Обе content_by_lua_block и proxy_pass обрабатываются в фазе содержимого. Nginx вызывает только одну такую ​​директиву.

Вы можете использовать access_by_lua_block или set_by_lua_block.

...