所以我们使用 Meteor 浏览器策略包,并使用 Amazon S3 来存储内容。
在服务器上,我们设置了浏览器策略,如下所示:
BrowserPolicy.content.allowOriginForAll('*.amazonaws.com');
BrowserPolicy.content.allowOriginForAll('*.s3.amazonaws.com');
访问我们的 http:// 网站时,这在本地开发和生产环境中运行良好。但是,当使用 https:// 地址访问我们的站点时,AWS 内容不再通过此策略。
控制台上出现以下错误
Refused to load the image 'http://our-bucket-name.s3.amazonaws.com/asset-stored-in-s3.png' because it violates the following Content Security Policy directive: "img-src data: 'self' *.google-analytics.com *.zencdn.net *.filepicker.io *.uservoice.com *.amazonaws.com *.s3.amazonaws.com".
正如您所看到的,我们在浏览器策略中允许了其他一些来源,这些似乎在 http 和 https 中都可以正常工作。AWS S3 是唯一失败的。
我试过 Chrome、Firefox 和 Safari,它们都有同样的问题。
这是怎么回事?