0

如何更改 Flask-limiter 存储在 Redis 中的键名?

https://flask-limiter.readthedocs.io/en/stable/

4

2 回答 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 回答