问题描述
请求回调参数Callback中的callbackUrl参数包含的URL数量过多。
问题原因
您发送的请求中用于上传回调的Callback参数Base64解码后会得到一个JSON结构,如果其中callbackUrl部分包含的URL数量过多,就会导致接口报错。
callbackUrl参数表示的是文件上传成功后,OSS发送回调请求的目的URL地址。接口支持同时配置最多5个URL,多个URL间以分号(;)分隔。OSS会依次发送请求直到第一个返回成功为止。
如果该参数中的URL数量超过5个,就会导致接口返回该错误。
问题示例
比如您的请求中Callback参数解码后得到:
{
"callbackUrl":"https://callback1.com;https://callback2.com;https://callback3.com;https://callback4.com;https://callback5.com;https://callback6.com;",
"callbackBody":"bucket=${bucket}&object=${object}&etag=${etag}&size=${size}&mimeType=${mimeType}&imageInfo.height=${imageInfo.height}&imageInfo.width=${imageInfo.width}&imageInfo.format=${imageInfo.format}&my_var=${x:my_var}"
}
其中callbackUrl参数的值中包含了6个分号分割的URL地址,超出了接口限制,因此接口会返回该错误。
解决方案
请确保Callback参数的原始JSON字符串中callbackUrl参数值是正确的URL,且数量不超过5个。
相关文档
关于上传回调中的常见错误及错误排查,请参见上传回调错误及排除。
关于基于Post Policy的使用规则在服务端通过各语言SDK代码完成签名,并且设置上传回调,然后通过表单直传数据到OSS的具体操作,请参见服务端签名直传并设置上传回调概述。
关于搭建基于OSS的移动应用数据直传服务并设置上传回调的具体操作,请参见快速搭建移动应用上传回调服务。
文档内容是否对您有帮助?