速率限制
速率限制
概述
无论令牌是通过开发者门户、OAuth 授权分发,还是来自为 Frame.io 自身应用程序提供服务的帐户后端,**所有对 Frame.io 的 API 调用都受到速率限制。**速率限制适用于来自个人用户的任何及所有 API 请求(无论使用哪种令牌或认证方式),这些限制会逐步消耗并逐步补充,且会在每次对 Frame.io API 发起的请求的响应头中予以体现。每个端点都配置有自身的限制,这些限制低至每分钟 10 个请求,高至每秒 100 个请求。超出特定端点速率限制的请求将在响应中收到 429 HTTP 错误。
消耗与补充
Frame.io API 使用漏桶策略进行渐进式速率限制,在该策略下,限制在其分配的时间窗口内逐渐刷新。换句话说,不存在某种硬性截止时间点,到达后某个特定资源的限制就会刷新(即“固定窗口”和“滑动窗口”强制策略)。相反,剩余限制会以与资源限制和时间窗口相对应的速率持续刷新。
指数退避
我们推荐的速率限制管理策略通常被称为“指数退避”。
简而言之:
- 当收到
429响应时,暂停一段时间(通常为一秒) - 如果再次收到
429响应,则以指数方式增加等待时间,直到恢复正常功能
标头
API 请求的响应将始终包含以下 3 个标头,您应当利用它们来限制您的出站请求:
示例
以下示例来自对 GET v2/assets/:id/children 的响应,用于获取项目根目录、文件夹或版本堆栈的次资产。该路径的限制为每 60,000 毫秒(一分钟)40 个请求,在发起一个请求之后还剩余 39 个请求。
详情
在 Frame.io API 中,不同资源路径的速率限制差异很大。以下是一些精选详细信息,为便于阅读,以资源和操作的形式表示(例如 “Assets — Update” 而不是 PUT /assets/:id)。
一般来说,创建新数据的资源路径限制为每分钟不超过 100 次调用,而获取资产列表的资源路径限制为每分钟 200 次调用。