From 166c452dbb375be4c68a4a1d3e97b432224711ff Mon Sep 17 00:00:00 2001 From: Karol Wypchlo Date: Wed, 16 Feb 2022 10:55:19 +0100 Subject: [PATCH] expose /skynet/trustless/basesector --- docker/nginx/conf.d/server/server.api | 36 +++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/docker/nginx/conf.d/server/server.api b/docker/nginx/conf.d/server/server.api index bcdd3705..0674515e 100644 --- a/docker/nginx/conf.d/server/server.api +++ b/docker/nginx/conf.d/server/server.api @@ -348,6 +348,42 @@ location ~ "^/file/(([a-zA-Z0-9-_]{46}|[a-z0-9]{55})(/.*)?)$" { include /etc/nginx/conf.d/include/location-skylink; } +location /skynet/trustless/basesector { + include /etc/nginx/conf.d/include/cors; + include /etc/nginx/conf.d/include/proxy-buffer; + include /etc/nginx/conf.d/include/track-download; + + limit_conn downloads_by_ip 10; # ddos protection: max 100 downloads at a time + + # default download rate to unlimited + set $limit_rate 0; + + access_by_lua_block { + if require("skynet.account").accounts_enabled() then + -- check if portal is in authenticated only mode + if require("skynet.account").is_access_unauthorized() then + return require("skynet.account").exit_access_unauthorized() + end + + -- check if portal is in subscription only mode + if require("skynet.account").is_access_forbidden() then + return require("skynet.account").exit_access_forbidden() + end + + -- get account limits of currently authenticated user + local limits = require("skynet.account").get_account_limits() + + -- apply download speed limit + ngx.var.limit_rate = limits.download + end + } + + limit_rate_after 512k; + limit_rate $limit_rate; + + proxy_pass http://sia:9980; +} + location /__internal/do/not/use/accounts { include /etc/nginx/conf.d/include/cors;