Bootstrap

腾讯 cos 对象存储,使用临时密钥操作时报错 403,该如何处理?

背景:
我想使用 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种,是keyallowPrefix不匹配

链接:https://cloud.tencent.com/document/product/436/56530

;