速率限制

概述

无论令牌是通过开发者门户、OAuth 授权分发,还是来自为 Frame.io 自身应用程序提供服务的帐户后端,**所有对 Frame.io 的 API 调用都受到速率限制。**速率限制适用于来自个人用户的任何及所有 API 请求(无论使用哪种令牌或认证方式),这些限制会逐步消耗并逐步补充,且会在每次对 Frame.io API 发起的请求的响应头中予以体现。每个端点都配置有自身的限制,这些限制低至每分钟 10 个请求,高至每秒 100 个请求。超出特定端点速率限制的请求将在响应中收到 429 HTTP 错误。

消耗与补充

Frame.io API 使用漏桶策略进行渐进式速率限制,在该策略下,限制在其分配的时间窗口内逐渐刷新。换句话说,不存在某种硬性截止时间点,到达后某个特定资源的限制就会刷新(即“固定窗口”和“滑动窗口”强制策略)。相反,剩余限制会以与资源限制和时间窗口相对应的速率持续刷新。

指数退避

我们推荐的速率限制管理策略通常被称为“指数退避”。

简而言之:

  • 当收到 429 响应时,暂停一段时间(通常为一秒)
  • 如果再次收到 429 响应,则以指数方式增加等待时间,直到恢复正常功能

标头

API 请求的响应将始终包含以下 3 个标头,您应当利用它们来限制您的出站请求:

标头
x-ratelimit-limit此资源路径的速率限制,以请求次数为单位。
x-ratelimit-remaining当前时间窗口内剩余的请求次数。
x-ratelimit-window此资源路径限制的时间窗口,以毫秒 (ms) 为单位。

示例

以下示例来自对 GET v2/assets/:id/children 的响应,用于获取项目根目录、文件夹或版本堆栈的次资产。该路径的限制为每 60,000 毫秒(一分钟)40 个请求,在发起一个请求之后还剩余 39 个请求。

x-ratelimit-limit → 40
x-ratelimit-remaining → 39
x-ratelimit-window → 60000

详情

在 Frame.io API 中,不同资源路径的速率限制差异很大。以下是一些精选详细信息,为便于阅读,以资源和操作的形式表示(例如 “Assets — Update” 而不是 PUT /assets/:id)。

一般来说,创建新数据的资源路径限制为每分钟不超过 100 次调用,而获取资产列表的资源路径限制为每分钟 200 次调用。

资源操作限制(请求次数)限制时间窗口(以毫秒为单位)
资产create51,000
资产update10
资产read51,000
评论
演示文稿
项目
审阅链接
团队
团队成员
create10060,000
搜索read20060,000