我的 Google 云端硬盘中有一堆公共图像,我想将它们显示在网站上。网站上没有服务器端编程访问;我必须在浏览器上用 JavaScript 进行所有编程。我想做的是获取公共文件夹中的文件列表,然后我可以制作适当的 HTML。
但我无法找出获取文件列表的合理方法。我发现了很多关于如何使用服务器端 API(Drive 应用程序、Google 的 REST API)执行此操作的讨论,但似乎没有一个适合浏览器 JavaScript,只有 Node.js。特别是 REST API 似乎需要 OAuth 2.0 或 API 密钥。显然,OAuth 凭据不能存在于基于浏览器的 JavaScript 中,而且我对将 API 密钥放在那里有点怀疑,即使 API 密钥受到高度限制。我还发现了一些旧的 Stack Overflow 答案,其中包含指向承诺匿名访问的 API 的指针,但这些似乎都指向死链接; API 显然已被撤回。
当然,我可以通过常规 URL 访问该页面,但返回的 HTML 数据是一个非常复杂的脚本,从中解析信息将很困难(更不用说当显示更改时非常脆弱)。
我是否缺少一些 API?或者我是否过度考虑了将 API 密钥放入公共脚本的安全方面?
这是我昨天回答的问题的软重复(脚本已开始显示损坏的图像图标);该消息的核心是,Google Drive 并非设计或旨在用于托管静态资产以供匿名使用。截至上个月(2024 年 1 月),许多用于替换 2015 年弃用的旧版 Google Drive 网站托管功能的解决方法已变得不可靠或完全损坏。您对客户端 JavaScript 设施薄弱/不存在的分析也表明了这一事实。
简而言之,您想要做的事情实际上在设计上是不可能实现的,有点类似于试图用香蕉钉钉子。经过巨大努力后,您可能能够实现您正在寻找的结果,但是使用正确的工具来完成工作(即合适的图像托管、CDN 或类似工具)将为您带来更好的结果和更易于维护的结果。从长远来看,解决方案。
您可能能够使用像
webpack
这样的捆绑器将某些内容组合在一起,其中它对HTML文档本身中的图像进行Base64编码,但这会显着增加HTML文档的大小,并且可能不适合您依赖的您的用例。
如果您将此 HTML 托管在某处,我不确定什么会阻止您将图像资源与 HTML 文档一起托管并在 HTML 标记中对它们进行相对引用。