跳到主要内容

批量文件解析

更新时间 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
}