Google Drive 9月安全更新resourceKey API调用规则相关问询
Google Drive API resourceKey 适配规则解答
核心结论
- 调用
files.get接口是否需要携带resourceKey分两种情况:- 若请求用户在本次9月10日安全更新生效前就已经拥有该文件的访问权限,首次调用
files.get时无需携带resourceKey,接口会正常返回文件的resourceKey字段(仅部分需加固的旧共享文件会存在该字段) - 若请求用户是安全更新生效后才获得文件访问权限,或是调用除
files.get外的其他文件操作接口(如下载、权限修改、元数据更新等),必须在请求头中携带X-Goog-Drive-Resource-Keys参数,值的格式为[文件ID]/[resourceKey],多个文件的key用逗号分隔即可
- 若请求用户在本次9月10日安全更新生效前就已经拥有该文件的访问权限,首次调用
- 同一份文件的resourceKey是固定值,只要合法获取到一次,后续所有对该文件的API请求都可以直接复用该值,无需重复获取,也没有调用用户身份限制,普通用户也可以使用管理员提前获取的resourceKey完成请求。
适配最佳实践
本次安全更新仅针对2021年之前创建、且开启了「知道链接的任何人都可访问」共享规则的文件生效,新创建的同类型共享文件会自动将resourceKey嵌入共享链接,无需额外处理。
- 建议提前使用拥有全量文件访问权限的账号运行批量
files.get任务,将所有文件对应的resourceKey预存在本地业务数据库中,后续所有API请求统一从本地取对应值放到请求头即可,无需每次请求前重复查询 - 若无法提前全量预存,可在API请求返回403/404错误时,先判定是否为缺少resourceKey导致,再用有访问权限的账号调用
files.get获取对应key,缓存后重试原请求即可。
内容的提问来源于stack exchange,提问作者Pedro Franco
相关产品推荐
相关产品推荐

