【问题标题】:Can not download files using Google Drive APIs V3无法使用 Google Drive APIs V3 下载文件
【发布时间】:2017-01-10 10:06:00
【问题描述】:

我正在尝试使用带有 alt=media 选项的 Google Drive API V3 下载文件。但我无法在网络浏览器中开始下载。

我的查询是:

GET https://www.googleapis.com/drive/v3/files/0B9jNhSvVjoIVM3dKcGRKRmVIOVU?alt=media

它的响应是这样的:

我尝试了第三个选项webContentLink,我可以直接在浏览器中开始下载,但无法下载大于 25MB 的文件。

所以我的问题是:如何通过 Google API 在浏览器中开始下载?

【问题讨论】:

  • 它是一个文件流您是否尝试将响应保存到本地文件?我认为您无法在浏览器中下载大于 25 mb 的文件。 developers.google.com/drive/v3/web/manage-downloads
  • 我尝试过使用 Blob,但是有大小限制,例如,无法使用 Blob 下载大于 10 MB 的图像,并且浏览器崩溃或下载的元素将在下载栏“下载失败 - 网络错误”。我想弄清楚如何通过 Google Drive API V3 直接在浏览器中下载任何文件。
  • 什么是响应头,即是否设置内容类型?对我来说 content-type 和 content-disposition: attachment 都设置正确。如果您是通过 javascript 启动的,您可能需要按照这些说明进行操作 stackoverflow.com/a/20830337/1542667
  • 有16个属性是响应头。在我的例子中,content-Type 是 'image/jpeg' 而 Content-Disposition 是 'attachment'。

标签: javascript google-api google-drive-api


【解决方案1】:

要使用 REST 或 Web 从 Google Drive API 下载任何内容,您需要知道文件的 webContentLink。通过调用Files.get获取文件的webContentLink

响应是下载文件的链接。但是请注意,当您超过 25MB 限制时,Google 可能会询问您有关“扫描病毒”的提示。之后就可以直接下载文件了。

这是我的 30MB webContentLink 的样子:

https://drive.google.com/uc?id=ABCDEFGccNwI7MkxfZHB5NzRfSVU&export=download

“扫描病毒提示”后,我就可以下载了。

【讨论】:

  • 感谢您的回答。我想知道您是如何管理应用程序上的“扫描病毒提示”的?
  • 当我在浏览器上打开 webContentLink 时,我只是点击了“是”。之后它继续下载文件。
猜你喜欢
  • 2021-07-15
  • 1970-01-01
  • 1970-01-01
  • 2023-02-06
  • 2020-05-23
  • 2021-03-19
  • 2022-01-03
  • 1970-01-01
  • 2015-05-30
相关资源
最近更新 更多