内容安全支持以异步消息通知的方式向您发送机器内容识别和您自助审核的结果。若您的业务需要使用或集成相关数据,您需要配置回调通知。本文介绍了配置OSS违规检测回调通知的具体操作。
背景信息
说明 OSS违规检测和内容检测API均支持回调通知。关于内容检测API回调通知,请参见内容检测API回调通知。
内容检测API回调通知分为扫描结果回调通知和审核结果回调通知。
- 扫描结果回调通知:内容安全完成检测请求后,服务端将识别的结果以POST请求的方式,发送到您设置的HTTP回调通知地址。
- 审核结果回调通知:您通过自助审核或调用反馈接口修改识别的结果后,内容安全服务端将审核结果以POST请求的方式,发送到您设置的HTTP回调通知地址。更多信息,请参见自助审核。
相关概念
在配置回调通知前,请了解下表中描述的相关概念。
名称 | 说明 |
---|---|
回调地址 | 回调地址是您在内容安全控制台配置的服务端地址,通常是您自己的业务服务器的公网地址。回调地址需要满足以下要求:
|
Seed | Seed值用于校验发送到您设置的HTTP回调通知地址的请求是否来自内容安全服务端。 |
回调次数 | 您的服务端接收到内容安全推送的回调消息后,如果返回的HTTP状态码为200,表示接收成功;如果返回其他的HTTP状态码,均视为接收失败。如果接收失败,内容安全服务端会重复推送回调消息,直至您接收成功。内容安全最多重复推送回调消息16次。 |
回调数据 | 回调数据是内容安全服务端向您设置的回调通知地址返回的数据内容。回调数据的结构描述,请参见表 1。 |
名称 | 类型 | 描述 |
---|---|---|
checksum | String | 总和校验码,由<用户uid> + <seed> + <content> 拼成字符串,通过SHA256算法生成。用户UID即阿里云账号ID,可以在阿里云控制台上查询。
说明 为防篡改,您可以在获取到推送结果时,按上述算法生成字符串,与checksum做一次校验。
|
content | String | 字符串格式保存的JSON对象,请自行解析反转成JSON对象。关于content解析成JSON后的结构,请参见表 2。
说明 在内容检测API和OSS违规检测中,content的参数结构不同。
|
设置扫描和审核结果回调通知
Content说明
启用回调通知后,内容安全将按照回调配置发送OSS违规检测的回调通知。回调通知中包含content表单数据。下表描述了content表单字段的结构。
名称 | 类型 | 是否必选 | 说明 |
---|---|---|---|
bucket | String | 是 | OSS Bucket的名称。 |
object | String | 是 | OSS文件名。 |
stock | Boolean | 是 | 是否是存量内容,取值:
|
region | String | 是 | OSS文件所在地域。 |
freezed | Boolean | 是 | 内容是否被冻结(禁止通过公网访问这些内容),取值:
|
scanResult | JSONObject | 否 | 扫描结果。根据检测对象(图片、视频)的不同,结构有差异。 |
auditResult | JSONObject | 否 | 自助审核结果,执行自助审核操作时才会有该字段。具体结构描述,请参见表 3。
说明 当您选择通知类型为人工审核结果,才出现该字段。
|
名称 | 类型 | 是否必选 | 说明 |
---|---|---|---|
suggestion | String | 是 | 自助审核的结果。取值:
|
resourceStatus | Integer | 是 | 自助审核后,object的状态。取值:
|
content示例
{
"bucket": "xxxxb",
"freezed": false,
"object": "xxx.jpg",
"region": "cn-hangzhou",
"scanResult": {
"code": 200,
"dataId": "5C919E2FBD6CD6940D4A8B46",
"msg": "OK",
"results": [
{
"label": "porn",
"rate": 100.0,
"scene": "porn",
"suggestion": "block"
},
{
"label": "normal",
"rate": 99.6,
"scene": "terrorism",
"suggestion": "pass"
}
],
"taskId": "img1ZxzVQUuAz36scZEjyGXzx-1qpzhY"
},
"auditResult": {
"resoureStatus": 2,
"suggestion": "pass"
},
"stock": false
}
在文档使用中是否遇到以下问题
更多建议
匿名提交