批量文件解析
更新时间 2025/02/22 07:19:43
英飞画布服务端支持基于 REST API 进行批量文件解析,支持的文件类型有 pdf
, ppt
,word
, excel
, 动态ppt
, audio
, video
, image
。
解析成功后,您可以基于解析信息及产物 ID,并进基于插入文件元素接口将您的文件直接插入画布内。
英飞业务下,文件解析产物的 ID 统一会使用
fileId
进行标记。
前提条件
-
已经完成英飞画布应用的创建动作,详见新人指引文档。
-
了解 REST API 请求的认证方式,详见获取 Access Token 文档。
-
提供接收解析结果的回调地址,并能够处理解析结果数据。
注意:
- 解析的文件不建议大于 500M,否则会有可能造成解析失败。
- 解析文档接口会针对文档页码进行实时解析,因此单次 REST 解析 API 调用时间可能会较长, 我们建议您的接口调用超时时间至少为 60 秒。
请求路径
https://developer.infi.cn/infi/api/v1/files/batchParseTasks
请求参数
字段
类型
描述
必填
files
FILE[]
需要解析的文件列表, 单次最多解析10个文件
是
FILE.fileUrl
string
文件地址
是
FILE.fileName
string
文件名
是
FILE.fileType
integer
文件类型,详情见下方说明
是
FILE.extFileId
string
用户自行指定的标记字段,用以区分回调
否
FILE.dpi
integer
文件解析分辨率
否
callbackUrl
string
解析结果回调地址
否
fileType 文件类型支持:
1: pdf;2: ppt;3: word; 4: excel; 5: 动态ppt; 6: 音频; 7: 视频; 8: 图片。
请求参数示例
{
"files": [
{
"fileUrl": "SAMPLE_PUBLIC_URL",
"fileName": "SAMPLE",
"fileType": 1,
"extFileId": "SAMPLE_EXT_FILE_ID",
"dpi": 300
}
],
"callbackUrl": "PARSE_CALLBACK_URL"
}
请求成功情况
响应的 Http 状态码为 200
时表示请求成功,并会带有异步解析任务的 taskId,您需要存储该 ID,
并于解析结果回调达到时,与回调数据中呈现的 taskId 作比对,进而获取可用于插入画布的文件解析产物 fileId
。
请求成功返回数据示例如下:
{
"taskId": "SAMPLE_TASK_ID"
}
请求失败情况
响应的 Http 状态码不为 200
时表示请求失败,如需更多信息请参考请求错误说明文档。
解析结果说明
当英飞服务端完成对于文件的异步解析处理后,会根据您提供的 callbackUrl
地址以 HTTP POST 请求的形式告知解析结果。
解析成功情况
如果文件解析成功,您收到的请求 payload 示例如下:
{
"total": 1,
"complete": 1,
"taskId": "TASK_ID_STRING",
"taskStatus": 100,
"list": [
{
"fileInfo": {
"fileExt": "FILE_EXT_STRING",
"totalPage": 10,
"coverWidth": 1920,
"coverHeight": 1080
},
"fileId": "FILE_ID_STRING",
"status": 100,
"fileType": 1
}
]
}
解析结果参数说明如下:
total
:解析文件数量。complete
:成功解析数量。taskId
:批量解析任务Id。taskStatus
:任务解析状态。100
: 成功,101
: 失败,102
: 解析中。list
:解析结果列表。fileItem.fileId
:解析产物 ID,对应插入文档元素请求内所需要的fileId
参数。fileItem.fileType
:文档类型数值,对应插入文档元素请求内所需要的fileType
参数。fileItem.status
:文档解析状态。1
: 解析中,2
: 成功,3
: 失败。fileItem.fileInfo.fileExt
: 文件扩展名。fileItem.fileInfo.totalPage
:文档页数,对应插入文档元素请求内所需要的totalPage
参数。在发起请求时,请务必保证totalPage
数值小于等于解析出的数值。非文档类文件该字段无意义。fileItem.fileInfo.coverWidth
:内容分辨率宽度,对应插入元素请求内所需要的size.width
参数。fileItem.fileInfo.coverHeight
:内容分辨率高度,对应插入元素请求内所需要的size.height
参数。
解析失败情况
如果文件解析失败,您同样会收到 POST 请求,请求 payload 示例如下:
{
"taskId": "FAILED_TASK_ID",
"taskStatus": 101
}