文件检测能够提取各类文件中的图片和文字内容,进行内容安全检测。文件检测除了支持解析文件内容,还可以在解析过程中将文件同步转成图片,并结合图片检测、图片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 | 是否近线检测模式。
|
modType | String | 否 | 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编码的传输数据,以及表单参数checksum和content。内容安全按照以下规则和格式设置checksum和content,调用您的callback接口返回检测结果。
说明 您的服务端callback接口收到内容安全推送的结果后,如果返回的HTTP状态码为200,则表示接收成功,其他的HTTP状态码均视为接收失败。接收失败时,内容安全将最多重复推送16次检测结果,直到接收成功。重复推送16次后仍未接收成功,则不再推送,建议您检查callback接口的状态。 |
seed | String | 否 | test | 随机字符串,该值用于回调通知请求中的签名。 由英文字母、数字、下划线(_)组成,不超过64个字符。由您自定义,用于在接收到内容安全的回调通知时校验请求由阿里云内容安全服务发起。 说明 当使用callback时,该字段必须提供。 |
cryptType | String | 否 | SHA256 | 使用回调通知时(callback),设置对回调通知内容进行加密的算法。内容安全会将返回结果(由
|
tasks | JSONArray | 是 | 指定检测对象,JSON数组中的每个元素是一个检测任务Object。最多支持100个元素,即每次提交100条内容进行检测,支持100个元素的前提是需要将并发任务调整到100个以上。关于每个元素的具体结构描述,请见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。
|
返回数据
名称 | 类型 | 示例值 | 描述 |
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"
}