回调通知指内容安全服务通过异步消息通知的方式向您发送机器内容检测或者您自助审核的结果。OSS违规检测和内容检测API均支持回调通知。本文介绍了配置OSS违规检测回调通知的方法。

背景信息

在使用回调通知功能前,请通过下表了解相关概念。

名称 说明
扫描结果回调消息 OSS违规检测完成后,由内容安全服务端将机器扫描的结果以POST请求的方式,发送到您设置的HTTP回调通知地址。
审核结果回调消息 您通过云盾内容安全控制台或者以调用接口的方式对机器检测的结果进行修改后,由内容安全服务端将审核结果以POST请求的方式,发送到您设置的HTTP回调通知地址。
Seed Seed值用于校验发送到您设置的HTTP回调通知地址的请求是否来自内容安全服务端。
回调地址 回调地址是您在内容安全控制台配置的服务端地址,通常是您自己的业务服务器的公网地址。回调地址需要满足以下要求:
  • 应为HTTP/HTTPS协议接口的公网可访问的URL。
  • 支持POST方法。
  • 支持传输数据编码采用UTF-8。
  • 支持数据接收格式为application/x-www-form-urlencoded
  • 支持表单参数checksumcontent
回调次数 您的服务端接收到内容安全推送的回调结果后,若返回的HTTP状态码为200,表示接收成功;若返回其他的HTTP状态码,均视为您接收失败,我们将重复推送最多16次。
回调数据 回调数据是内容安全服务端向您设置的回调通知地址返回的数据内容。回调数据的结构描述见下表。
表 1. 回调通知表单数据
名称 类型 描述
checksum String <用户uid> + <seed> + <content>拼成字符串,通过SHA256算法生产。用户UID即阿里云账号ID,您可在阿里云控制台上查询。
说明 为防篡改,您可以在获取到推送结果时,按此算法生成字符串,与checksum做一次校验。
content String 字符串格式保存的JSON对象,请自行解析反转成JSON对象。根据不同的检测功能(OSS违规检测、内容检测API),content解析成JSON后的格式有所差异,详见下文Content说明。

扫描&审核回调通知设置

  1. 登录云盾内容安全控制台
  2. 前往设置 > OSS违规检测页面,并打开消息通知页签。
  3. OSS回调通知下,单击设置
    说明 如果您设置过回调地址,则此处显示查看,您可以单击查看。

    oss违规检测,设置
  4. OSS回调通知设置侧边页,完成以下配置,并单击设置
    配置项 说明
    回调地址 填入回调通知地址。
    生效模块 勾选要应用回调设置的功能模块,取值:
    • 增量扫描
    • 存量扫描
    开启审核回调 是否开启审核回调。
    开启扫描回调 是否开启扫描回调。
    扫描回调类型 开启扫描回调后,选择对哪种类型的扫描结果进行回调通知,取值:
    • 扫描结果违规
    • 扫描结果疑似
    • 扫描结果正常
    设置完成后,系统会自动生成一个Seed。Seed值用于校验您的回调接口收到的请求来自阿里云。请保存自动生成的Seed,并在调用相关接口时根据需要传入该参数。
    oss回调通知,设置,seed

回调数据说明

启用回调通知后,内容安全将按照回调配置发送OSS违规检测的回调通知。回调通知中包含content表单数据。下表描述了content表单字段的结构。

表 2. content表单字段结构描述
名称 类型 是否必须 说明
bucket 字符串 OSS bucket的名称。
object 字符串 OSS文件名。
stock 布尔 是否是存量对象,true表示是存量,false表示是增量。
region 字符串 OSS文件所在地域。
freezed 布尔 对象是否被冻结,true表示被冻结,false表示未被冻结。
scanResult JSON对象 扫描结果。根据不同的检测对象(图片、视频),结构有差异。
auditResult JSON对象 审核结果。审核操作时才会有该字段,具体结构描述见表 3
说明 如果只推送扫描结果,则没有该字段。
表 3. auditResult
名称 类型 是否必须 说明
suggestion 字符串 审核时给的建议值。取值:
  • block:审核时设置违规
  • pass:审核时设置正常
resourceStatus 整型 审核后,object的状态。取值:
  • 0:已删除
  • 1:已冻结
  • 2:可用可访问

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
}