限制和配额可保护 Google 基础架构免受自动进程以不当方式使用 Data Transfer API 的影响。来自 API 的过多请求可能是由无害的拼写错误所致,也可能是由于系统设计效率低下、进行不必要的 API 调用而导致的。无论出于何种原因,在来自特定来源的流量达到特定级别时,都必须屏蔽该流量,这样才能确保 Google Workspace 系统的整体运行状况。它可确保一个开发者的行为不会对更大的社区产生负面影响。
API 请求失败
在极少数情况下,如果您的 API 请求失败,您的应用会收到 HTTP 状态代码响应。状态代码 403
包含有关错误输入的错误信息;HTTP 状态代码 503
则包含错误信息,指明已超出哪些 API 配额。通过这些响应,您的自定义应用可检测这些错误并采取适当的措施。
在固定时间段内完成请求
如果您的请求需要在固定时间段内完成,请并行发送请求,或在 Java 或 C# 应用中使用多个线程。例如,按月或其他时间段细分您的请求。对于线程,请尝试从 10 个线程开始,每个请求一个线程。线程建议需要权衡利弊,并且并非适用于所有 API 情况。如果请求数太高,将发生配额错误。
基于时间的错误
对于基于时间的所有错误(每个线程最多显示 N 个 X 秒的错误),尤其是 503
状态代码错误,我们建议您的代码捕获异常,并使用指数退避算法算法,等待一小段延迟后再重试失败的调用。一个线程的 Data Transfer API 示例是等待 5 秒,然后重试失败的调用。如果请求成功,则对其他线程重复此模式。如果第二个请求未成功,您的应用应根据请求频率缩容,直到调用成功为止。例如,将最初 5 秒的延迟时间增加到 10 秒,然后重试失败的呼叫。此外,您需要决定重试限制。例如,在您的应用向用户返回错误之前,使用不同的延迟时间重试请求 5 到 7 次。
限制
API 限制类别 | 限制 |
---|---|
每秒查询数 (QPS) | 开发者项目的上限为每个帐号每秒 10 次查询 (QPS)。 |
配额
API 配额类别 | 配额 |
---|---|
每天的 API 请求数上限 | 每天的最大 API 请求数为 500,000。 |
归档,邮件过期 | 群组归档不会过期。在群组被删除之前,邮件会一直保留在归档中。电子邮件保留政策不会影响群组归档中的邮件。 |
邮件大小 | 邮件的大小上限为 25MB。此限制包括消息的元数据标头、正文和所有附件。 |
其他类型的限制
其他类型的限制 | 限制和准则 |
---|---|
内容类型格式 | 电子邮件必须采用标准 RFC 822 文本格式。请求的内容类型格式(用于上传已迁移的电子邮件)使用 Content-type: message/rfc822 标头。 |
API 响应中的数据格式 | 响应的数据格式为 JavaScript 对象表示法 (JSON)。 |
数据位置政策 | Data Transfer API 不支持因合同原因而要求将数据存储在特定地理边界或政治边界内的数据位置政策。如果您的帐号需要数据位置,请勿使用 Data Transfer API。 |
并行消息插入 | Data Transfer API 支持以并行请求将电子邮件插入不同群组归档。但是,Data Transfer API 不支持将消息并行插入同一组归档文件。此版本的 API 也不支持批量请求。 |
未经授权的请求 | Data Transfer API 不接受任何未经授权的请求。如果未提供授权令牌,请求将被视为未授权。 |