文件异步检测

文件检测能够提取各类文件中的图片和文字内容,进行内容安全检测。文件检测除了支持解析文件内容,还可以在解析过程中将文件同步转成图片,并结合图片检测、图片OCR等方式,实现更全面的保障文件内容合规性。本文介绍如何调用文件检测接口检测文件内容的方法。

功能介绍

功能项

文件检测

支持检测图片所在的文件格式

支持DOC、DOCX、PPT、PPTX、PDF、XLS、XLSX、TXT格式

检测图片中的文字

支持

文件大小限制

200 MB

同时检测文件的数量

10路

近线检测模式(用于批量文件检测)

支持

其他

  • 支持开启或关闭检测图片

  • 支持指定最多检测的文件页数

使用说明

业务接口:/green/file/asyncscanv2,表示文件异步检测。

您可以调用该接口创建文件内容检测任务。关于如何构造HTTP请求,请参见请求结构;您也可以直接选用已构造好的HTTP请求,更多信息,请参见SDK概览

计费信息

根据文件实际检测的图片和文本量计费。

  • 图片

    按照检测的图片的页数x图片检测场景(文件每页图片进行鉴黄、涉政暴恐和图文违规的检测)计费。另外,开启文件的图片检测时,会产生智能媒体管理(IMM)转换文件的费用。关于文件转换费用,请参见产品计费

  • 文本

    按照检测文本的条数x文本反垃圾场景计费。待检测文本的每5,000字符被拆分为一条文本进行检测并计费。关于文本反垃圾检测场景费用,请参见文本内容检测计费详情

计费案例:例如待检测的一个PDF文件总共100页,共100万字符的文本,文件检测总费用为图片和文本的费用之和。

  • 图片:文件转换费用(0.08元/次)+100页x图片检测3个场景(6.85元/千张)=0.08元+0.685元

  • 文本:200条文本x文本反垃圾检测费用(1.8元/千条)=0.36元

共计:(0.08+0.685)+0.36=1.125元

并发限制

本接口的单用户QPS限制为5次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。

同时检测的文件数量限制10个,超过限制后会返回错误码588。如果您需更高的检测并发路数,请加入钉群(钉群号:35573806),联系产品技术专家进行咨询。

请求参数

名称

类型

是否必选

示例值

描述

bizType

String

default

该字段用于标识您的业务场景。您可以通过内容安全控制台创建业务场景(具体操作,请参见自定义机审标准)。

offline

Boolean

false

是否近线检测模式。

  • false(默认):表示实时检测模式,对于超过了并发路数限制的检测请求会直接拒绝。

  • true:表示近线检测模式,提交的任务不保证实时处理,但是可以排队处理,在24小时内开始检测。

modType

String

All

指定检测类型:

  • Text:仅检测文件中的文本。

  • Image:仅检测文件中的图片。

  • All(默认):同时检测文件中的图片和文本。

说明

建议对DOC、DOCX、PPT、PPTX、PDF文件同时检测图片和文字内容;对XLS、XLSX、TXT文件仅检测文本。

maxPages

Integer

200

检测文件页数限制,默认为200页(条),最大支持1,000页上限。

文件中文本内容每5,000字拆分一条检测,最多检测1,000条。

callback

String

http://www.aliyundoc.com/xx.json

异步检测任务不会实时返回检测结果,您需要通过callback或者轮询的方式获取检测结果。检测结果最长保留一小时。

callback接口必须支持POST方法、UTF-8编码的传输数据,以及表单参数checksumcontent。内容安全按照以下规则和格式设置checksumcontent,调用您的callback接口返回检测结果。

  • checksum:字符串格式,由用户uid + seed + content拼成字符串,通过SHA256算法生成。用户UID即阿里云账号ID,可以在阿里云控制台查询。为防篡改,您可以在获取到推送结果时,按上述算法生成字符串,与checksum做一次校验。

    说明

    用户UID必须是阿里云账号的UID,而不是RAM用户的UID。

  • content:JSON字符串格式,请自行解析反转成JSON对象。关于content结果的示例,请参见查询检测结果的返回示例。

说明

您的服务端callback接口收到内容安全推送的结果后,如果返回的HTTP状态码为200,则表示接收成功,其他的HTTP状态码均视为接收失败。接收失败时,内容安全将最多重复推送16次检测结果,直到接收成功。重复推送16次后仍未接收成功,则不再推送,建议您检查callback接口的状态。

seed

String

test

随机字符串,该值用于回调通知请求中的签名。

由英文字母、数字、下划线(_)组成,不超过64个字符。由您自定义,用于在接收到内容安全的回调通知时校验请求由阿里云内容安全服务发起。

说明

当使用callback时,该字段必须提供。

cryptType

String

SHA256

使用回调通知时(callback),设置对回调通知内容进行加密的算法。内容安全会将返回结果(由用户uid + seed + content拼接的字符串)按照您设置的加密算法加密后,再发送到您的回调通知地址。取值:

  • SHA256(默认):使用SHA256加密算法。

  • SM3:使用国密HMAC-SM3加密算法,返回十六进制的字符串,且字符串由小写字母和数字组成。

    例如,abc经国密SM3加密后返回66c7f0f462eeedd9d1f2d46bdc10e4e24167c4875cf2f7a2297da02b8f4ba8e0

tasks

JSONArray

指定检测对象,JSON数组中的每个元素是一个检测任务Object。最多支持100个元素,即每次提交100条内容进行检测,支持100个元素的前提是需要将并发任务调整到100个以上。关于每个元素的具体结构描述,请见task

表 1. task

名称

类型

是否必选

示例值

描述

clientInfo

JSONObject

{"userId":"28645****","userNick":"Mike","userType":"others"}

客户端信息,请参见公共参数中的公共查询参数。

服务器会把全局的clientInfo和此处独立的clientInfo合并。

说明

独立的clientInfo优先级更高。

dataId

String

test2NInmO$tAON6qYUrtCRgLo-1mwxdi

检测对象对应的数据ID。需要保证在一次请求中所有的ID不重复。

url

String

https://www.aliyundoc.com/tfs/TB1urBOQFXXXXbMXFXXXXXXXXXX-1442-257.pdf

检测对象的URL。

  • 公网HTTP/HTTPS URL,且长度不超过2048个字符。

  • 阿里云OSS提供的文件路径。您需要先授权内容安全访问OSS存储空间,仅限相同区域的OSS空间。更多信息,请参见授权内容安全访问OSS存储空间

    文件路径格式:oss://<bucket-name>.<endpoint>/<object-name>

返回数据

名称

类型

示例值

描述

code

Integer

200

错误码,和HTTP状态码一致。更多信息,请参见公共错误码

taskId

String

file_t_7Efx6ndTriK5Xx$rD2RFkr-1oB8zu

该检测任务的ID。

dataId

String

testCvlKbUe4U@6uT6XJxh3G5-1oB8zu

对应的请求中的dataId。

msg

String

OK

请求信息的响应消息。

示例

请求示例

http(s)://[Endpoint]/green/file/asyncscanv2
&<公共请求参数>
{
    "bizType":"aligreen-test",
    "offline":true,
    "modType":"All",
    "maxPages":200,
    "tasks":[
        {
            "dataId":"test2NInmO$xxxxxxxxxxxxxx-1mwxdi",
            "url":"https://www.aliyundoc.com/tfs/TB1urBOQFXXXXbMXFXXXXXXXXXX-1442-257.pdf"
        },
        {
            "dataId":"test2NInmO$xxxxxxxxxxxxxx-aksdjak",
            "url":"https://www.aliyundoc.com/tfs/TB1urBOQFXXXXbMXFXXXXXXXXXX-1442-257.pdf"
        }
    ]
}

正常返回示例

{
    "code":200,
    "data":[
        {
            "code":280,
            "dataId":"testCvlxxxxxxxxxxxxxxx-1oB8zu",
            "msg":"PROCESSING - queue",
            "taskId":"file_t_xxxxxxxxxxxxxxx-1oB8zu"
        }
    ],
    "msg":"OK",
    "requestId":"B15C5A4F-xxxxxxxx-xxxxxxx-446E72C9"
}