【问题标题】:Google Drive Rest API V3 Downloading large files (>25MB)Google Drive Rest API V3 下载大文件 (>25MB)
【发布时间】:2016-12-09 18:58:38
【问题描述】:

我试图弄清楚如何通过 Google Drive API V3 直接在浏览器中下载大型二进制文件。

根据Drive API manual,通过API下载文件有三种不同的方式:

  1. 下载文件 — files.get with alt=media 文件资源
  2. 下载并导出 Google 文档 — files.export
  3. 将用户链接到文件——来自文件资源的webContentLink

选项 (2) 在我的情况下没有用,因为文件不是 Google Docs 文件,选项 (3) 不是解决方案,因为这会将用户重定向到 Google Drive 无法扫描大的警告病毒文件。

这给我留下了选项(1)。这几乎可以完美地工作,我可以通过 alt=media 属性成功地将用户重定向到文件,例如:

https://www.googleapis.com/drive/v3/files/0By3zfuC927VWRkJnV3g2aDY4UHM?alt=media&access_token=ya29.XXXXXXXXXXXXX

虽然这将在浏览器中开始下载,但它将以文件 ID 命名,而不是原始文件名。这很令人困惑。

所以我的问题是:如何通过 Google API 下载具有正确文件名的大文件(>25MB 且没有病毒警告)?

注意 1: 在服务器上通过 cURL 下载文件之前和 在我的情况下,将输出发送到浏览器不是一种选择。

注意 2:此外,文件不能共享。这就是我使用 API 的原因。

【问题讨论】:

    标签: google-api google-drive-api google-api-php-client


    【解决方案1】:

    AFAIK,目前不支持无法共享的文件,因为 Google 云端硬盘中的网络托管支持已被弃用。 (参考:here)

    您可能需要查看以下 SO 帖子中给出的回复以获取更多信息:

    【讨论】:

    • 好吧,正如我在问题中所展示的那样,在不推荐使用网络托管支持后,可以通过 API 下载大型(非共享)文件。但是,文件将仅以文件的 ID 命名,而不是文档的标题/名称。所以问题不是如何下载那些大文件,而是如何用正确的文件名下载它们。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-21
    • 2021-10-05
    • 2021-07-15
    • 1970-01-01
    • 2019-11-08
    相关资源
    最近更新 更多