【问题标题】:Why are images loaded from a public S3 bucket no longer displaying after upgrading to Chrome 76?为什么升级到 Chrome 76 后从公共 S3 存储桶加载的图像不再显示?
【发布时间】:2019-08-08 18:34:25
【问题描述】:

我正在开发一个从公共 s3 存储桶加载图像的反应应用程序,这几个月来一直有效。今天我升级到 google chrome 76,而不是加载图像,它只是返回一个空白。 在许多机器上都看到了相同的效果。

有趣的是,图像请求返回 200,但没有显示图像。如果我手动访问 S3 url 链接,图像是可见的。

我想知道它是否与this forum post 以及新版 chrome 中引入的新安全措施有关?

这是我们对图像请求的内容安全策略的 sn-p

<meta
    http-equiv="Content-Security-Policy"
    content="img-src * 'self' blob: data:;"
/>

我可以做些什么来重新加载这些图像吗?

【问题讨论】:

    标签: image google-chrome amazon-s3 request


    【解决方案1】:

    我已经找到了问题的根源,这似乎是一个 CORB 问题。在新的 v76 版本中必须稍微更新。

    发生的情况是,当我们将图像上传到 S3 时,我们没有在上传请求中明确设置 Content-Type 标头。然后 S3 错误地将 Content-Type 派生为 application/x-www-form-urlencoded。因此,当我们尝试获取图像并将它们加载到 img 标记中时,Chrome 将其视为无效(可以理解)然后阻止它们。

    有趣的是,到目前为止,这些图片一直在以错误的内容类型加载,并且在我开始上传新图片之前,我没有收到任何 CORB 警告。

    Useful article on CORB for developers

    帮助的 Stack Overflow 文章: How to change content type of Amazon S3 objects

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-14
      • 2017-03-07
      • 1970-01-01
      • 2019-05-14
      • 2014-12-23
      • 1970-01-01
      • 2016-11-16
      相关资源
      最近更新 更多