谷歌云存储图片公开链接img src

tim*_*her 8 javascript image src google-cloud-storage

您好,我已经调查了相关问题,但未能找到答案。我想在我的网站上提供来自谷歌云存储的公共链接,但它们仅作为下载链接提供。我无法将它们作为 img src 来加载它们。由于 CORS,我无法从我的网页 js 下载异步图像。有解决方法吗?我想知道我是否可以最初将它们异步定义为下载链接并强制 onclick 下载它们,然后使用文件阅读器将 blob 用作 img src。

更新:我发现存在 Chromium 问题。我将 Firefox 与 CORS_Everywhere 一起使用,请求有效。我的网站上线后,我的图片会遇到同样的问题吗?或者是CORS不接受本地主机?或者它是否依赖于浏览器?

谢谢,计时员

Bra*_*ugh 11

我不完全确定你想要做什么。听起来您想<img>在来源位于 GCS的标签中显示图像。您不应该为此需要任何类型的 CORS 政策或 Javascript 技巧,所以我可能会误解您的问题。

要在网站上包含 GCS 图像,请确保该图像是公开可见的,然后只需包含这样的图像标签:<img src="https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME" />

使用评论中的答案进行编辑:

如果您上传的对象没有指定 Content-Type,GCS 默认为通用的“application/octet-stream”。Web 浏览器通常默认保存application/octet-stream响应。如果您想通过网络提供它们,请确保 JPEG 图像具有内容类型“图像/jpeg”。

还有一个警告:

还有另一个使用该https://storage.cloud.google.com/路径的路径,但该路径用于用户使用他们自己帐户的 Google cookie 进行身份验证,并且在提供公共内容时您通常不会依赖它。使用https://storage.googleapis.com.

  • Google云提供了链接“https://storage.cloud.google.com/BUCKET/path/to/image.jpg”,但正确的链接是“https://storage.googleapis.com/BUCKET/path/to/image” .jpg`...浪费了 4 个小时的时间...谢谢哥们,你的回答给了我一个主意 (11认同)
  • @OlegReym,你救了我 4 个小时。谢谢。我建议布兰登应该将其添加到他的答案中。 (3认同)