是否可以在JavaScript中使用来自GCS的下载URL?

时间:2019-06-24 20:59:38

标签: javascript firebase cors google-cloud-storage fetch-api

这个新问题仅仅是因为我的老问题已经关闭。所以我什至无法回答。

Javascript fetch using a download URL from GCS

我很少遇到必须考虑CORS的情况,因此我对此一无所知。但这是正在发生的事情。

  1. 我使用fileRef.getDownloadURL()获得了GCS上文件的下载URL。

  2. 在Chrome标签中打开该URL时可以使用。

  3. 但是由于(不良)CORS,尝试使用JavaScript fetch失败。

  4. 原则上,可以使用gsutil cors set ...来解决此问题(请参见上面的问题)。

  5. 但是,因为我使用的是测试环境(firebase servelocalhost),因此似乎无法为{{1 }}。

因此,如果有人知道上述5的解决方案,我将不胜感激。 (当然,我可以使用一种解决方法,但我不希望这样。)

顺便说一句,我尝试使用建议的代理服务器,但似乎在这里被阻止了。


编辑:我还向Google提交了错误报告。但是,如果我错了,那就太好了,这不是Firebase本地测试与GCS之间相互作用的错误。

1 个答案:

答案 0 :(得分:-1)

您的问题是:如何使用客户端的Javascript脚本从GCS获取内容。

问题是重复的,因为已经here回答了。请花一点时间来阅读答案,您将看到与您面临的问题相同的问题。您可以使用一种替代方法,而不必修改存储桶的cors策略或从服务器端获取:

  1. 使用Heroku代理服务器(我已经使用online demo尝试过此服务器,并且对我有用)

注释:

  • 此解决方案的实现在我一开始就提到的问题及其说明中得到了展示。
  • 确保您要访问的对象是公共的。
  • 您还可以使用“ {模式:'no-cors'}”,它将检索内容,但是由于响应将是“不透明的”,因此您将无法通过客户端脚本访问它。 / li>