问题经过
公司新分了一个项目,项目中使用OSS做文件存储;CTO考虑说:为了不浪费后端网络带宽,文件的上传下载由web端和app端直接对接OSS,并且要支持断点续传和断点下载,服务端来提供临时访问令牌。
Coder:没问题,保证完成任务!
问题1
Web端访问OSS,由于不在同域下,报出异常如下:
<Code>AccessForbidden</Code>
<Message>
CORSResponse: This CORS request is not allowed. This is usually because the evalution of Origin,
request method Access-Control-Request-Method or Access-Control-Requet-Headers are not whitelisted by the resource's CORS spec.
</Message>
需要配置OSS跨越
这里是dev环境所对应的bucket设置的跨域配置
OSS详细跨域配置链接:
阿里云OSS跨域资源共享
问题2
随着时间的流逝,我们的项目经历了N轮的测试,终于要发布演示(stage)环境了。这个时候app端出现了问题:
<Error>
<Code>AccessDenied</Code>
<Message>Access denied by authorizer's policy.</Message>
<RequestId>62EB5D472C1E93303271BA2F</RequestId>
<HostId>xxx-test.oss-cn-hangzhou.aliyuncs.com</HostId>
</Error>
这个问题大概意思是 授权人的策略拒绝访问
,定睛一看,这是说STS的权限策略有问题呀!但是这个权限策略是我司资深运维配置的怎么会有问题呢?(