【发布时间】:2016-12-09 18:58:38
【问题描述】:
我试图弄清楚如何通过 Google Drive API V3 直接在浏览器中下载大型二进制文件。
根据Drive API manual,通过API下载文件有三种不同的方式:
- 下载文件 — files.get with
alt=media文件资源 - 下载并导出 Google 文档 —
files.export - 将用户链接到文件——来自文件资源的
webContentLink
选项 (2) 在我的情况下没有用,因为文件不是 Google Docs 文件,选项 (3) 不是解决方案,因为这会将用户重定向到 Google Drive 无法扫描大的警告病毒文件。
这给我留下了选项(1)。这几乎可以完美地工作,我可以通过 alt=media 属性成功地将用户重定向到文件,例如:
虽然这将在浏览器中开始下载,但它将以文件 ID 命名,而不是原始文件名。这很令人困惑。
所以我的问题是:如何通过 Google API 下载具有正确文件名的大文件(>25MB 且没有病毒警告)?
注意 1: 在服务器上通过 cURL 下载文件之前和 在我的情况下,将输出发送到浏览器不是一种选择。
注意 2:此外,文件不能共享。这就是我使用 API 的原因。
【问题讨论】:
标签: google-api google-drive-api google-api-php-client