问题描述
在使用阿里云OSS上传回调功能时,发送给对象存储OSS的请求中携带相应的回调参数后,返回了以下报错信息。
<Error>
<Code>InvalidArgument</Code>
<Message>The callback configuration is not json format.</Message>
问题原因
Callback参数必须为经过Base64编码的JSON字符串。发生报错的原因是在您将callbackBodyType设置为application/json
后,callbackBody参数没有使用有效的JSON格式。
解决方案
发起回调请求的Content-Type,支持application/x-www-form-urlencoded
和application/json
,默认为前者。callbackBodyType
的取值为application/x-www-form-urlencoded
,则callbackBody中的变量将会被经过URL编码的值替换掉;如果为application/json
,则会按照JSON格式替换其中的变量。关于OSS回调参数设置的更多信息,请参见Callback。请参见以下方法进行调整:
- 方法一:callbackBody参数应该设置成类似以下格式:
"callbackBody":"{\"bucket\":${bucket},\"object\":${object}}"
- 方法二:
- 将
callbackBodyType
设置为application/x-www-form-urlencoded
。 - 将callbackBody参数设置成类似以下格式。
"callbackBody":"bucket=${bucket}&object=${object}"
相关文档
OSS使用上传回调的示例和常见问题,请参见上传回调中的常见错误及分析处理。
适用于
- 对象存储OSS
文档内容是否对您有帮助?