今天在集成阿里云OSS进行对象存储时,前端Vue的代码报如下错误:
电脑具体返回值如下:
<?xml version="1.0" encoding="UTF-8"?><Error> <Code>AccessDenied</Code> <Message>Invalid according to Policy: Policy expired.</Message> <RequestId>6389B20DB80005333241E193</RequestId> <HostId>xxxx.oss-cn-shenzhen.aliyuncs.com</HostId></Error>
原因分析
根据返回的错误信息,可以看出,提示的是Policy无效或者过期,那么,如何造成这个错误呢?原因如下:
1.bucket不一致,即后端的桶名和前端的桶名不一致
2.access-key或者secret-key不正确
3.Policy时间过期(看下后端代码,默认设置的是30秒)
!!!电脑时间和网络时间不一致(差距一分钟或者几分钟)!!!,会出现此情况。目前我遇到的就是这种情况!!
解决办法1.bucket后端的桶名和前端的桶名不一致
电脑-----解决办法:找到不一致的地方,进行修改
2. access-key或者secret-key不正确
-----解决办法:找到不正确的地方,进行修改
3.Policy时间过期(看下后端代码,默认设置的是30秒):
-----解决办法一:将后端代码的过期时间加大,比如300秒.
-----解决办法二:将电脑的时间修改正确
建议最好的办法是同步电脑的时间,不过由于本人网络有限制,无法成功同步时间,因此采用了方法一进行处理。
电脑