【问题标题】:Google Drive API downloadUrl does not workGoogle Drive API downloadUrl 不起作用
【发布时间】:2015-02-05 20:05:56
【问题描述】:
  • 我在 Google 云端硬盘上有一些录音
  • 这些文件“任何人都可以通过链接查看”
  • 我创建了一个链接到这些文件的播客提要

为了让播客客户端下载文件,它需要一个直接下载链接。 Google Drive API 在文件元数据中返回两个可以发挥此作用的字段:

  • webContentLink 旨在用于浏览器。它允许我的播客客户端下载小于 25MB 的文件;不幸的是,超过这个数量,谷歌需要用户确认,因为该文件没有经过病毒扫描。如果文件超过 25MB,此用户确认步骤会阻止我的播客客户端下载文件。
  • downloadUrl 是你应该使用的,但我根本无法让它工作。如果我将downloadUrl 直接复制粘贴到浏览器的地址栏中,我什么也得不到。同样,我的播客客户端无法使用 downloadUrl 下载任何内容。

This issue 似乎没有得到解决,并表明这仍然存在问题,但我有几个问题:

  • 我是否需要在 downloadUrl 请求中提交 API 密钥? webContentLink 不需要密钥。
  • 是否有解决此问题的方法?

【问题讨论】:

  • 对于downloadUrl,您无法在浏览器中访问内容。尝试使用 [Oauth 2.0 Playground][1] 测试您是否能够通过 downloadUrl 获取内容,并查看您是否可以看到文件的内容。 [1]:developers.google.com/oauthplayground
  • 我也有同样的问题。如果文件超过 25 MB,则无法使用 API 从 Google Drive 下载文件。您找到解决方法了吗? :)

标签: google-drive-api


【解决方案1】:

使用 downloadUrl 请求文件时,您必须在请求标头中指定以下授权:

"Authorization: Bearer $token"

其中 $token 是 gapi 为这样的用户返回的 access_token:

gapi.auth2.getAuthInstance().currentUser.get().getAuthResponse().access_token;

因此,如果您使用 curl,请求将是这样的:

curl -o download -H "Authorization: Bearer $token" $downloadUrl 

【讨论】:

    猜你喜欢
    • 2016-11-21
    • 2014-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-12
    相关资源
    最近更新 更多