0007-00000009

问题描述

请求回调参数Callback中的callbackHost部分不合法。

问题原因

您发送的请求中用于上传回调的Callback参数Base64解码后会得到一个JSON结构,如果其中callbackHost内的值必须是一个字符串,就会导致接口报错。

callbackHost参数的值用于设置发起回调请求时Host头的值,需要符合域名和IP规则,只有在设置了callbackUrl时才有效。如果没有配置callbackHost,则会解析callbackUrl中的URL并将解析出的host填充到callbackHost中。

问题示例

比如您的请求中callback参数解码后得到:

{
	"callbackUrl":"www.oss-callback.com/test.php",
  "callbackHost":[1, 2, 3],
	"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}"
}

其中callbackHost参数的值是一个列表,而不是接口所要求的符合域名和IP规则的字符串,因此接口会返回该错误。

解决方案

如果请求中配置了callbackHost,请确保参数值是需要符合域名和IP规则的字符串。您也可以选择不配置callbackHost,此时会解析callbackUrl中的URL,并将URL中解析到的Host填充到callbackHost中。

相关文档