Google Drive Rest API V3下载大文件(> 25MB)

时间:2016-12-09 18:58:38

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

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

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

  1. 使用alt=media文件资源
  2. 下载文件 - files.get
  3. 下载并导出Google文档 - files.export
  4. 将用户链接到文件 - 文件资源中的webContentLink
  5. 选项(2)在我的情况下无用,因为文件不是Google Docs文件而选项(3)不是解决方案,因为这会将用户重定向到Google云端硬盘无法扫描的警告病毒文件。

    这给了我选项(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​​的原因。

1 个答案:

答案 0 :(得分:1)

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

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