我正在使用谷歌驱动器在网站上显示图像。 我使用以下网址来显示图像:
https://drive.google.com/uc?export=view&id={fileId}
在大多数情况下工作正常,但有些用户看不到图像并收到以下错误消息:
Failed to load resource: the server responded with a status of 403 ()
谷歌驱动器上的图像文件和文件夹与所有人共享,并提供链接查看。 该问题似乎与浏览器无关。
有人知道如何解决这个问题吗?是否有一些我忘记做的事情(我是否需要链接中的某种 API 密钥)?
截至今天我也遇到了同样的问题。 (就像几个月前谷歌结束了经典网站一样,我(错误地)将其用作图像存储库。)
清除浏览器中的所有 cookie 后,图像再次可见。 这样就解决了这个问题。
如果问题仍然存在,您应该更改 URL。
此 URL 给出 403 错误:
https://drive.google.com/uc?export=view&id={img-ID}
将其更改为:
https://lh3.google.com/u/0/d/{img-ID}
例如:在 WebApp 中设置图标:
return template.evaluate()
.setFaviconUrl('https://lh3.google.com/u/0/d/1qMrq5o54jhg5jedu9fLtzUG4dF1ijKZT1#.ico')
我在这个答案上发现,从谷歌驱动器共享图像的最佳解决方案是使用此网址:
https://lh3.googleusercontent.com/d/{ID_OF_THE_FILE}
语法示例:https://lh3.googleusercontent.com/d/1z-3moeybmtxqhyjWWN8PvKIZizI6yw6B
另一个优点是,您可以即时调整图像大小:
=w300
附加到 url 来将最大 width设置为 300(例如)。示例:https://lh3.googleusercontent.com/d/1z-3moeybmtxqhyjWWN8PvKIZizI6yw6B=w300
=h300
。示例:https://lh3.googleusercontent.com/d/1z-3moeybmtxqhyjWWN8PvKIZizI6yw6B=h300缺点(写完答案后发现):如果图像尺寸很大,API 不会返回原始图像,而是返回缩小后的版本☹️。图像示例的原始尺寸为 3317x2221,但提供的图像尺寸为 1600x1071。所以也许不是一个适合所有情况的解决方案......
如果您有很多文件要共享并获取网址,我的为文件夹中的所有文件生成图像网址的解决方案可以帮助您轻松获取它们。
我已经使用 Ionic Angular 处理了这个问题,在最新版本中你应该使用 https://lh3.google.com/u/0/d/{img-ID} 正如 Edso 所说,它解决了问题。请考虑,只有当您有登录的谷歌帐户时,图像才会加载,否则响应的状态将为 302 并且图像将永远不会加载。