【问题标题】:Direct link to a file located on Google Drive直接链接到位于 Google Drive 上的文件
【发布时间】:2021-03-19 08:40:52
【问题描述】:

我想要做的是创建一个指向位于我的 Google Drive 上的 mp3 文件的直接链接 URL,并将其用于 HTML5 的音频对象,但我收到 403 错误。

我知道,当尝试创建位于 Google Drive 上的文件的链接时,它创建的不是文件的直接 URL,而是用于通过查看器查看文件的 URL,例如

https://drive.google.com/file/d/<file ID>/view?usp=sharing

我用谷歌搜索发现可以将其重写为直接链接 URL,如下所示:

https://drive.google.com/uc?id=<file ID>

我在我的音频元素的 src 属性中设置了这个 URL。但是,当我尝试play() 方法时,会抛出以下错误:

GET https://drive.google.com/uc?id=<file ID> 403

myProject.html:1 Uncaught (in promise) DOMException: Failed to load because no supported source was found.

所以我尝试从浏览器访问 URL https://drive.google.com/uc?id=&lt;file ID&gt;

然后,我得到了这个:

403. That’s an error.

We're sorry, but you do not have access to this page. That’s all we know.

我尝试了很多次,所以我不太可能错误粘贴&lt;file ID&gt;

我应该怎么做才能创建文件的有效直接链接 URL? 我将不胜感激。

进展

我知道出了什么问题。 问题在于,只有获得授权的用户才能访问 Google Drive 上的文件,这意味着只有 Google 帐户的所有者才能访问文件 URL。

我尝试从与谷歌账户关联的Chrome浏览器访问它,然后,错误没有发生。

但是,我想将此文件提供给所有人。 我应该怎么做才能授予其他人访问权限?

【问题讨论】:

    标签: javascript html google-chrome http google-drive-api


    【解决方案1】:

    您知道 Google Drive 不是文件托管服务吗?即使您确实可以使用此解决方案,它也不会很稳定。

    要使其正常工作,您需要将文件设置为公开,以便每个人都可以访问它。那么我敢打赌,从长远来看,您将需要一个 API 密钥来执行此操作。

    还请记住,文件 ID 不稳定,如果您上传文件,将来可能会发生变化。

    【讨论】:

    • 谢谢。这是一个非常小的项目,我认为这一切都可以在 Google Drive 中完成。但正如你所说,如果这是不稳定的方式,我想我应该寻找另一种方式,比如使用另一个文件托管服务。
    【解决方案2】:

    我自己解决了这个问题。我右键单击该文件,单击Get link,并将授权选择从Restricted 更改为Anyone with the link。然后,任何人访问的 403 错误都消失了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-02
      • 2014-07-20
      • 1970-01-01
      • 1970-01-01
      • 2015-10-22
      • 1970-01-01
      相关资源
      最近更新 更多