背景:
我想使用 cos的 putObject
API 来上传图片
首先我卡在这里很久了
1、为了解决这个 403
报错,首先我反复查看了该账户给予的权限和策略,但是该给予的都给予了,一直报错 AccessDenied
2、尝试又创建一个账户,使用该密钥来请求但是还是一直报错
3、反复查看存储桶名,以及各个参数是否有误,但是还是没有错,密钥也没有错
4、最后我就想不使用临时密钥,而是直接使用固定密钥,这时候是可以的
5、但是我觉得这样不安全,而且文档也不建议
最终在常见问题中发现此问题了!
解决:
请检查申请临时密钥时填写的 action 和 allowPrefix 是否正确。
- 例如调用 cos.putObject(),但是 action 里并没有填写name/cos:PutObject,即没有 putObject 权限导致报错 403。
- 例如操作的 Key 是 1.jpg,但是 allowPrefix 填写的是 test/(只允许操作 test/ 路径),即没有对应路径的操作权限导致报错 403。
我的情况是属于 第2种,是key
和allowPrefix
不匹配
链接:https://cloud.tencent.com/document/product/436/56530