接口
获取token
地址:/getToken
请求方式:POST
请求参数:
- appId:YbcKSAlou6UREvkwJmTx
- appSecret:95NmdotNX939f4gk7vTd3cHkMd8LhBcSzPn50G8c
响应数据:
{
"code":0,
"msg":"操作成功",
"data":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiIiLCJpYXQiOjE3MDY1MDgwOTYsImV4cCI6MTcwNjUyMjQ5NiwiYXBwSWQiOiJMZ2lDQlFzbHA4TERmTnlXdWpNbyJ9.2sAq09kEpV7teYwqIa6CxRwzAQSVrv2TeMYy5A9NS_8"
}
上传初始化(秒传)
地址:/file/uploadInit
请求方式:POST
header参数:token
请求参数:
- dirId:文件夹id
- fileName:文件名
- md5:文件md5
响应数据:
- 正常上传:
{
"code": 0,
"data": {
"upload": {
//上传id,秒传时,不返回上传id
"uploadId": "a0dacab1-7a04-4c5c-b751-46cea30ee974",
//是否跳过上传,如果为true,说明秒传,不需要再调用上传文件接口,并且会返回文件id(fileId),如果为false,走正常上传流程
"skip": false,
//文件id
"fileId": 0
},
//服务当前使用的上传服务,local本地文件服务,minio minio服务
"fileServerType": "local"
}
}
- 秒传:
{
"code": 0,
"data": {
"upload": {
//上传id,秒传时,不返回上传id
"uploadId": "",
//是否跳过上传,如果为true,说明秒传,不需要再调用上传文件接口,并且会返回文件id(fileId),如果为false,走正常上传流程
"skip": true,
//文件id
"fileId": 1747524994864275458
},
"fileServerType": "local"
}
}
上传文件/分片
地址:/file/upload
请求方式:POST
header参数:token
请求参数:
- file: 文件
- chunkNumber: 当前分片编号
- chunkTotal: 总分片数
- fileName: 文件名
- uploadId: 上传id,初始化接口获取到的上传id
- dirId:文件夹id
响应数据:
- 上传分片
{
"code":0,
"msg":"分片上传完成",
"data":0
}
- 合并完成
{
"code":0,
"msg":"合并完成",
"data":"1745604715384700930"
}
创建文件夹
地址:/file/dirAdd
请求方式:POST
header参数:token
请求参数:
- dirId:上级文件夹id
- name:文件夹名称
响应数据:
{
"code": 0,
"msg": "操作成功"
}
文件/文件夹重命名
地址:/file/rename
请求方式:POST
header参数:token
请求参数:
- id:文件id
- name:文件/文件夹新名字
响应数据:
{
"code": 0,
"msg": "操作成功"
}
获取文件列表(分页)
地址:/file/list
请求方式:GET
header参数:token
请求参数:
- dirId:所在文件夹id
- pageNo:当前第几页,默认1
- pageSize:每页数量,默认10
响应数据:
{
"code": 0,
"msg": "操作成功",
"data": {
"records": [
{
"id": "1750762969215533058",
"name": "新建文件夹",
"isDir": 1,
"dirId": "0",
"fileSize": "0",
"duration": "0",
"transStatus": 0,
"createTime": "2024-01-26 06:09:54",
"thumUrl": "",
"fileType": 0
},
{
"id": "1747889182539296769",
"name": "6c26d76632e5b05779e3f2bc91e8aedf.m4v",
"isDir": 0,
"dirId": "0",
"fileSize": "60221473",
"suffix": ".m4v",
"md5": "a67c7577e464acf66a802a2dddf2ee39",
"duration": "31",
"transStatus": 1,
"createTime": "2024-01-18 07:50:29",
"fileUrl": "http://127.0.0.1:8918/files/515f4fa8-0f1e-47b3-9f04-b922c9ab0371.m4v",
"fileTransUrls": [
"http://127.0.0.1:8918/trans/hls/a62aaf96-07d4-42fd-b5e2-bc86cc61e73d/video.m3u8"
],
"thumUrl": "http://127.0.0.1:8918/thum/a67c7577e464acf66a802a2dddf2ee39/1.jpg"
}
],
"total": "32",
"size": "10",
"current": "1",
"pages": "4"
}
}
参数说明:
- id:文件ID
- name:文件名
- isDir:是否文件名,0是文件,1是文件夹
- dirId:所在文件夹id
- fileSize:文件大小(B)
- suffix:文件后缀
- md5:文件md5
- duration:视频为时长(秒),文档为转pdf后的页数,其他文件为0
- transStatus:转码状态,0 正在转码,1 转码成功,2 部分转码成功,3 转码失败,4 不需要转码,5 不支持转码,6 取消转码
- createTime:上传时间,格式:yyyy-MM-dd HH:mm:ss
- fileUrl:原文件地址
- fileTransUrls:转码后的文件列表(根据开启的转码模板数量而定)
- thumUrl:文件封面地址
获取文件详情
地址:/file/detail/:id
请求方式:GET
header参数:token
响应数据:
{
"code": 0,
"msg": "操作成功",
"data": {
"id": "1759776044321124353",
"name": "文件管理系统.pptx",
"isDir": 0,
"dirId": "0",
"fileSize": "2659028",
"suffix": ".pptx",
"md5": "269059d792de04d14ce3354d76b9d617",
"duration": "25",
"transStatus": 1,
"createTime": "2024-02-20 03:04:38",
"previewUrl": "http://127.0.0.1:8918/trans/document/39f8d3fa-fcea-4a1b-aefc-f916eca0d559.pdf?st=gy7dPuGlh2Io4mIQ-eCPQQ&e=1709703848",
"progressList": [
{
"id": "1759776044639891458",
"fileTransId": "1759776224541978625",
"progress": 100.0,
"format": "pdf",
"transStatus": 1,
"startTime": "1708398278757",
"endTime": "1708398321706",
"previewUrl": "http://127.0.0.1:8918/trans/document/39f8d3fa-fcea-4a1b-aefc-f916eca0d559.pdf?st=gy7dPuGlh2Io4mIQ-eCPQQ&e=1709703848",
"fileSize": "34518359"
}
],
"thumUrl": "http://127.0.0.1:8918/thum/269059d792de04d14ce3354d76b9d617/1.jpg?st=esCMdzh-HZeqA29W1fFUIA&e=1709703848",
"fileType": 3,
"pdfWatermark": "凌夕文件管理系统 2024-03-06 13:39:08"
}
}
参数说明:
- id:文件ID
- name:文件名
- isDir:是否文件夹,0不是,1是文件夹
- dirId:文件所在文件夹id,最上层目录,为0
- fileSize:文件大小(B)
- suffix:文件后缀
- md5:文件md5
- duration:视频为时长(秒),文档为转pdf后的页数,其他文件为0
- transStatus:转码状态,0 正在转码,1 转码成功,2 部分转码成功,3 转码失败,4 不需要转码,5 不支持转码,6 取消转码
- createTime:上传时间,格式:yyyy-MM-dd HH:mm:ss
- thumUrl:文件封面地址
- fileType:文件大的类型,1为视频,2为文档
- previewUrl:文件预览地址
- pdfWatermark:pdf文件预览的水印内容,用element-plus实现页面水印
- progressList:转码进度列表,转码中和部分转码成功才会有该值,其他情况不会有该值,如果是视频,可能会多个进度,文档就一个进度,如果多个进度,当前转码进度需要取平均值
- id:转码进度id
- fileTransId:转码后文件id
- progress:转码进度
- format:转码格式
- transStatus:转码状态,0 正在转码,1 转码成功,2 部分转码成功,3 转码失败,4 不需要转码,5 不支持转码,6 取消转码
- startTime:开始转码时间(时间戳,毫秒)
- endTime:结束转码时间(时间戳,毫秒)
- previewUrl:转码后的文件预览地址
- fileSize:转码后的文件大小(B)
删除文件/文件夹
如果删除文件夹,文件夹下的文件和文件夹都会被删除
地址:/file/delete
请求方式:GET
header参数:token
请求参数:
- id:文件/文件夹id
响应数据:
{
"code": 0,
"msg": "操作成功"
}
获取转码模板列表
地址:/transTemplate/list
请求方式:GET
header参数:token
请求参数:无
响应数据:
{
"code": 0,
"msg": "操作成功",
"data": [
{
"id": 1746778020070301697,
"name": "普清",
"status": 0,
"width": 0,
"height": 1080,
"format": "m3u8",
"frameRate": 20,
"bitRate": 2000,
"codec": "h264",
"audioCodec": "aac",
"audioChannel": 2,
"audioBitRate": 112,
"audioSampleRate": 8000,
"createTime": "2024-01-15 06:15:08"
}
]
}
参数说明:
- id:模板ID
- name:模板名称
- status:状态,是否开启转码,0 关闭,1 开启
- width:分辨率(宽)
- height:分辨率(高)
- format:转码输出格式
- frameRate:视频帧率
- codec:视频编解码器
- bitRate:视频比特率(码率)
- audioBitRate:音频比特率(码率)
- audioSampleRate:音频采样率
- audioChannel:音频声道
- audioCodec:音频编解码器
新增/更新转码模板
地址:/transTemplate/save
请求方式:POST
header参数:token
请求参数:
- id:模板ID,新增时不要传该参数,是否有id参数是区分新增、更新操作
- name:模板名称
- width:分辨率(宽),如:1920
- height:分辨率(高),如:1080
- format:转码输出格式,可选:mp4、m3u8
- frameRate:视频帧率,可选:15、20、25、30、40、50、60
- codec:视频编解码器,可选:H264
- bitRate:视频比特率(码率),可选:500、800、1200、2000、3000、5000、8000
- audioBitRate:音频比特率(码率),可选:16、32、48、64、80、96、112、128、160、192、224、256、320、384、448、512
- audioSampleRate:音频采样率,可选:8000、11025、12000、16000、22050、24000、32000、44100、48000、64000、88200、96000
- audioChannel:音频声道,可选:1、2
- audioCodec:音频编解码器,可选:aac
- waterMarkId:水印模板id
响应数据:
{
"code": 0,
"msg": "操作成功"
}
关闭/开启转码模板
地址:/transTemplate/updateStatus
请求方式:POST
header参数:token
请求参数:
- id:模板ID,新增时不要传该参数,是否有id参数是区分新增、更新操作
- status:状态,是否开启转码,0 关闭,1 开启
响应数据:
- 成功
{
"code": 0,
"msg": "操作成功"
}
- 失败
{
"code": 1007,
"msg": "视频转码模板不存在"
}
删除转码模板
地址:/transTemplate/delete
请求方式:POST
header参数:token
请求参数:
- id:模板ID
响应数据:
- 成功
{
"code": 0,
"msg": "操作成功"
}
文件上传成功后缩略图列表
文件上传后,如果马上调用该接口,可能返回的列表是空的,因为生成缩略图需要时间,可能需要几秒钟,所以在显示缩略图列表选择页面,如果获取到的数据是空的,最好重试几次,直到获取到数据、或者超时给用户提示。
地址:/file/thumList
请求方式:GET
header参数:token
请求参数:
- md5:文件md5
响应数据:
- 成功
{
"code": 0,
"msg": "操作成功",
"data": [
{
"id": 1747079912013021186,
"fileUrl": "http://127.0.0.1:8918/thum/db94fba515e9c0dc7cb20dbf06bc410c/1.jpg",
"duration": 1
}
]
}
更新文件缩略图
地址:/file/updateFileThum
请求方式:POST
header参数:token
请求参数:
- fileId:文件id
- thumId:缩略图id
响应数据:
{
"code": 0,
"msg": "操作成功"
}
手动转码
地址:/file/manualTranscode
请求方式:POST
header参数:token
请求参数:
- fileId:文件id
响应数据:
- 成功
{
"code": 0,
"msg": "操作成功"
}
- 失败
{
"code": 1012,
"msg": "该文件不支持转码"
}
转码列表
地址:/transProgress/list
请求方式:GET
header参数:token
请求参数:
- pageNo:当前第几页,默认1
- pageSize:每页数量,默认10
响应数据:
{
"code": 0,
"msg": "操作成功",
"data": {
"records": [
{
"id": "1749360770384216065",
"fileId": "1749360770249998339",
"fileTransId": "1749360775123779586",
"progress": 100.0,
"format": "pdf",
"transStatus": 1,
"startTime": "1705915083869",
"endTime": "1705915085036",
"fileName": "常用软件.xlsx",
"createTime": "2024-01-22 09:18:03"
}
],
"total": "26",
"size": "10",
"current": "1",
"pages": "3"
}
}
参数说明:
- id:转码ID
- fileId:文件id
- fileName:文件名
- fileTransId:转码后的文件id
- progress:转码进度,0-100
- format:转码输出格式
- transStatus:转码状态,0 正在转码,1 转码成功,3 转码失败
- startTime:开始转码时间(时间戳)
- endTime:完成转码时间(时间戳),进行中为0,如要计算进行中转码时长,使用当前时间进行计算
- createTime:创建转码时间,创建转码时,不一定马上开始转码了,开始转码时间要看startTime