七牛接口错误401状态invalid put policy encoding原因及解决方法
使用的是七牛php的sdk,版本7.2,在调用上传接口之后的回调时 提示401错误 invalid put policy encoding 翻译为 PUT策略编码无效 有点蒙。
后折腾了几次,也提了工单问七牛。发现是生成token参数不正确,还以为是sdk生成token方法有问题,因为正好更新了新版的sdk,然后修改了这段原来正常的执行的代码。
后将token转码后对比以往正确token,发现报错的原因 是其中用到的参数 fsizeLimit 值的类型不正确,需要整型,而我修改之后的代码传的是字符串型,所以生成的token在七牛解析后不符合规则。后工单也给了回复,文档链接:上传策略
需要整型64位以内的
解决办法就是把整个参数使用intval函数将传入参数转为整型,测试上传成功。
php是弱类型的语言,平时写这些不怎么注意这个问题,在项目对接C时,也是要求格式严格正确,也是吃了几次亏,涨了记性。网上说这个不多,搜七牛文档没搜到专门这个词的解答,如果你也遇到这个问题,可以检查下是否是参数的格式不正确