问题描述
公司把图片存储从七牛云迁移到aws s3,图片迁移完成后,在网站获取图片资源的时候,报错,提示跨域存在问题。提示语见下:
Access to Image at ‘’ from origin '’ has been blocked by CORS policy: No ‘Access-Control-Allow-Origin’ header is present on the requested resource. Origin ‘*’ is therefore not allowed access.
分析定位
由于也是第一次使用s3,对相关的规则不熟悉,走了很多弯路,前后端尝试了各种解决跨域的办法,后面通过查找CORS,找到了答案。CORS是什么呢?来看一下解释,跨域资源共享 (Cross-origin resource sharings),知道它的概念,就知道了跨域需要用它来配置处理,接下来,让我们找一下s3里面的s3 CORS的配置。配置路径:s3->存储桶->权限->CORS配置,我们可以在这里编辑跨域访问s3资源的规则,默认时没有配置的。配置见下图:
配置完成后,问题解决,这是设置的是允许来自所有源的跨源请求,不做限制。
CORS配置
什么是CORS?Cross-origin resource sharings。下面来对CORS的配置做一下简单的讲解。
下面看一下我的配置,配置文件:
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<