文档转码
文档上传与转码服务,用于将Office文档和PDF文档上传至云端并转码成图片或动态网页。
通常用于教学场景下的课件转码。
首次使用文档转码功能前,需要申请开通。
请注意,与其他RESTful API使用PanoSign来认证不同,文档转码API使用PanoToken
认证,这是因为Pano假设文档转码API都是由客户端调用。文档转码相关API并不关心Token里的userId、channelId、duration这些信息,只要是合法有效的Token就可以。如果需要在App Server端调用文档转码相关API,可以先调用 获取Token 接口先生成一个token,参数userId、channelId、duration等信息可以任意给。
上传文档并转码
使用form表单方式上传Office文档或PDF文档至云端并转码成图片或动态网页。文件上传后,Pano会开始转码,转码速度取决于资源空闲程度,客户可以通过查询文档信息接口来查询文档进度,也可以等待webhook消息通知。
请求
POST /docs
Host: api.pano.video
Authorization: PanoToken <Token>
Tracking-Id: ef9b2acc8e1f4d598090eb6d9cbe8596
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryIOFbRKVnqu56AZ6w
------WebKitFormBoundaryIOFbRKVnqu56AZ6w
Content-Disposition: form-data; name="file"; filename="xxx.pptx"
Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation
------WebKitFormBoundaryIOFbRKVnqu56AZ6w
Content-Disposition: form-data; name="lifeType"
2
------WebKitFormBoundaryIOFbRKVnqu56AZ6w
Content-Disposition: form-data; name="convertType"
1
------WebKitFormBoundaryIOFbRKVnqu56AZ6w--
参数说明:
- file - 上传本地需要进行转码的文档,仅支持docx、xlsx、pptx、doc、xls、ppt、pdf格式,文件最大支持40M;
- lifeType - int 可选,表示文档的生命周期,1-long term,2-temp,默认为2。类型2的文档将会被定期清除;
- convertType - int 可选,转码类型:1-jpg,2-png,3-html,默认为1;当为3时,仅支持pptx和ppt格式的文档;
- needThumb - bool 可选,是否需要缩略图,默认为false
- needZip - bool 可选,是否需要压缩包,默认为false
响应码
状态码 | 说明 |
---|---|
200 | 请求成功处理 |
400 | 请求格式错误 |
401 | 认证错误 |
413 | 文件过大 |
500 | 服务器端内部错误 |
响应示例
200 OK
{
"docId": "13646924452200448"
}
查询文档信息
用于查询文档转码进度,也用于生成图片地址。
请求
GET /docs/:docId?duration=7200
Host: api.pano.video
Content-Type: application/json
Authorization: PanoToken <Token>
Tracking-Id: ef9b2acc8e1f4d598090eb6d9cbe8596
参数说明:
- docId - 文档id
- duration - int 可选, 表示生成的url的有效期,单位秒,默认为2小时
响应码
状态码 | 说明 |
---|---|
200 | 请求成功处理 |
401 | 认证错误 |
403 | 非法操作 |
404 | 文件不存在 |
500 | 服务器端内部错误 |
响应示例
当status=3时,响应里会带上转码后的图片URL。当status=0时,字段code会进一步给出错误原因。
200 OK
{
"docId": "101680235036024832",
"pageCount": 2,
"progress": 100, // 暂时只有0和100两个值
"status": 3, // 1-QUEUED, 2-RUNNING, 3-FINISHED, 0-FAILED
"code": 0, // 0-NoError, 1-Unsupported, 2-TimeOut, 3-ConvertFailed
"url": [
"https://transcode.pano.video/temp/convert/101680235036024832/1.jpg",
"https://transcode.pano.video/temp/convert/101680235036024832/2.jpg"
],
"thumbUrl": [ // 默认为 null,needThumb 为 true 时才有返回值
"https://transcode.pano.video/temp/convert/101680235036024832/thumb/1.jpg",
"https://transcode.pano.video/temp/convert/101680235036024832/thumb/2.jpg"
],
"zipUrl": "https://transcode.pano.video/temp/convert/101680235036024832/bundle.zip", //默认为 null,needZip 为 true 时才有返回值
"thumbZipUrl": "https://transcode.pano.video/temp/convert/101680235036024832/thumb/bundle.zip" ///默认为 null,needZip与needThumb都为 true 时才有返回值
}
删除文档
请求
DELETE /docs/:docId
Host: api.pano.video
Content-Type: application/json
Authorization: PanoToken <Token>
Tracking-Id: ef9b2acc8e1f4d598090eb6d9cbe8596
参数说明:
- docId - 文档id
响应码
状态码 | 说明 |
---|---|
200 | 请求成功处理 |
401 | 认证错误 |
403 | 非法操作 |
404 | 文件不存在 |
500 | 服务器端内部错误 |