如何更改 Flask-limiter 存储在 Redis 中的键名?
问问题
87 次
2 回答
0
您可以设置键前缀
limiter = Limiter(
app,
key_func=get_remote_address,
default_limits=["200 per day", "50 per hour"],
storage_uri='redis://localhost:6379',
key_prefix='DTM',
)
这会将键名从
LIMITER/127.0.0.1/slow/1/1/day
至
LIMITER/DTM/127.0.0.1/slow/1/1/day
于 2021-09-10T14:58:39.073 回答
0
要添加到 namizaru 的响应中:您只能使用此库控制密钥的某些部分。
以 namizaru 为例:
LIMITER/127.0.0.1/slow/1/1/day
字符串“LIMITER”来自 Flask-limiter 包装的限制库 ( https://github.com/alisaifee/limits )。我没有看到一个很好的方法来覆盖它。
据我所知,“127.0.0.1”是key_func
传递给Limiter
( ) 的参数的结果,并且应该返回一个唯一的字符串,该字符串标识速率受限的资源。get_remote_address
因此,您可以在那里提供自己的可调用对象,但这只会更改密钥的一部分。
同时,分隔符(“/”)也来自限制库,似乎不可覆盖。
于 2021-09-14T17:42:27.953 回答