上传回调出现“CallbackFailed”错误,该如何解决?
报错信息1
<Error>
<Code>CallbackFailed</Code>
<Message>Response body is not valid json format.</Message>
<RequestId>587C81A125F797621829923D</RequestId>
<HostId>bucket.oss-cn-hangzhou.aliyuncs.com</HostId>
</Error>
问题原因:回调服务器返回给OSS的消息体非Json格式。
解决方法:您可以通过curl -d "<Content>" <CallbackServerURL> -v
或抓包确认内容。Windows下推荐使用Wireshark工具抓包,Linux下使用tcpdump工具抓包,详情请参见网络异常时如何抓取数据包。一些非法返回消息体如OK,\357\273\277{"Status":"OK"}(即含有ef bb bf三个字节的BOM头)等。
报错信息2
<Error>
<Code>CallbackFailed</Code>
<Message>Error status : -1.OSS can not connect to your callbackUrl, please check it.</Message>
<RequestId>587C8735355BE8694A8E9100</RequestId>
<HostId>bucket.oss-cn-hangzhou.aliyuncs.com</HostId>
</Error>
问题原因:回调服务器处理时间超过5秒,OSS认为超时。
解决方法:建议回调服务器的处理逻辑修改为异步,保证在5秒内处理完毕并返回结果给OSS。
报错信息3
<Error>
<Code>CallbackFailed</Code>
<Message>Error status : -1 8.8.8.8:9090 reply timeout, cost:5000ms, timeout:5000ms (err -4, errno115)</Message>
<RequestId>587C8D382AE0B92FA3EEF62C</RequestId>
<HostId>bucket.oss-cn-hangzhou.aliyuncs.com</HostId>
</Error>
问题原因:回调服务器处理时间超过5秒,OSS认为超时。
报错信息4
<Error>
<Code>CallbackFailed</Code>
<Message>Error status : 400.</Message>
<RequestId>587C89A02AE0B92FA3C7981D</RequestId>
<HostId>bucket.oss-cn-hangzhou.aliyuncs.com</HostId>
</Error>
问题原因:回调服务器返回给OSS的消息的状态码是400。
解决方法:请检查回调服务器的处理逻辑。
报错信息5
<Error>
<Code>CallbackFailed</Code>
<Message>Error status : 502.</Message>
<RequestId>587C8D382AE0B92FA3EEF62C</RequestId>
<HostId>bucket.oss-cn-hangzhou.aliyuncs.com</HostId>
</Error>
问题原因:回调服务器未启动,或者缺少上传回调参数中的CallbackUrl,或者OSS与回调服务器的网络不通。
解决方法:推荐在ECS上部署回调服务器,与OSS同属内网可以节省流量费用,同时保证网络质量。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。