文件操作

获取文件详情

接口

GET https://cloud.minapp.com/userve/v2.2/file/:file_id/

其中 :file_id 需替换为你的文件 ID

代码示例

  1. var axios = require('axios').create({
  2. withCredentials: true
  3. })
  4. axios.get('https://cloud.minapp.com/userve/v2.2/file/5a1ba9c1fff1d651135e5ff1/').then(res => {
  5. console.log(res.data)
  6. })

返回示例

  1. {
  2. "categories": [
  3. {
  4. "id": "5a1ba7b708443e7fc5f2fb18",
  5. "name": "Category",
  6. }
  7. ],
  8. "cdn_path": "1eJCS1MFGdvaaBoV.png",
  9. "created_at": 1511762369,
  10. "id": "5a1ba9c1fff1d651135e5ff1",
  11. "media_type": "image",
  12. "mime_type": "image/png",
  13. "name": "box_close.png",
  14. "path": "https://cloud-minapp-287.cloud.ifanrusercontent.com/1eJCS1MFGdvaaBoV.png",
  15. "size": 3652,
  16. "status": "success"
  17. }

获取文件列表

接口

GET https://cloud.minapp.com/userve/v2.2/file/

该接口支持通过参数 return_total_count 指定是否返回查询对象总数,以协助不关心对象总数只关心查询结果列表的开发者提升接口响应速度。同时,从 v2.2 版本开始该接口默认不返回查询对象总数,欲获取总数的开发者需要显式指定 return_total_count 参数。

参数说明

Content-Type: application/json

参数类型必填说明
order_byStringY排序(支持 created_at 进行排序)
limitNumberN限制返回资源的个数,默认为 20 条,最大可设置为 1000
offsetNumberN设置返回资源的起始偏移值,默认为 0
return_total_countNumberN返回结果 meta 中是否返回 total_count,1 为返回,0 为不返回,默认不返回

若开发者只需要获取对象总数,则可以通过设置 limit=1 以及 return_total_count=1 来达到该效果,total_count 可从返回的 meta 中获取

请求示例:

  1. https://cloud.minapp.com/userve/v2.2/file/?limit=1&return_total_count=1

代码示例

  1. var axios = require('axios').create({
  2. withCredentials: true
  3. })
  4. axios.get('https://cloud.minapp.com/userve/v2.2/file/', {
  5. params: {
  6. order_by: '-created_at',
  7. category: '5a1ba7b708443e7fc5f2fb18'
  8. }
  9. }).then(res => {
  10. console.log(res.data)
  11. })

删除文件

接口

DELETE https://cloud.minapp.com/userve/v2.2/file/:file_id/

其中 :file_id 需替换为你的文件 ID

代码示例

  1. var axios = require('axios').create({
  2. withCredentials: true
  3. })
  4. axios.delete('https://cloud.minapp.com/userve/v2.2/file/5a1ba9c1fff1d651135e5ff1/').then(res => {
  5. console.log(res.data)
  6. })

状态码说明

204 删除成功

批量删除文件

接口

DELETE https://cloud.minapp.com/userve/v2.2/file/?id__in=:file1_id,:file2_id

代码示例

  1. var axios = require('axios').create({
  2. withCredentials: true
  3. })
  4. axios.delete('https://cloud.minapp.com/userve/v2.2/file/', {
  5. params: {
  6. id__in: '5a1ba9c1fff1d651135e5ff1,59ca3d275f281f58523fc47a'
  7. }
  8. }).then(res => {
  9. console.log(res.data)
  10. })

状态码说明

204 删除成功

视频截图

接口

POST https://cloud.minapp.com/userve/v1/media/video-snapshot/

请求参数说明

参数类型必填说明
sourceStringY视频文件的 id
save_asStringY截图保存的文件名
pointStringY截图时间格式,格式:HH:MM:SS
category_idStringN文件所属类别 ID
random_file_linkBooleanN是否使用随机字符串作为文件的下载地址,不随机可能会覆盖之前的文件,默认为 true
sizeStringN截图尺寸,格式为 宽 x 高,默认是视频尺寸
formatStringN截图格式,可选值为 jpg,png, webp, 默认根据 save_as 的后缀生成

返回参数

参数类型说明
created_atInteger创建时间 (格式为 unix 时间戳)
pathString路径
created_byInteger创建者 id
mime_typeStringmime_type 类型
media_typeString媒体类型
sizeInteger文件大小
nameString文件名
statusString文件状态
referenceObject引用
cdn_pathStringcdn 中保存的路径
updated_atInteger更新时间 (格式为 unix 时间戳)
categoriesString文件所属类别
idString本条记录 ID

代码示例

  1. var axios = require('axios').create({
  2. withCredentials: true
  3. })
  4. axios.post('https://cloud.minapp.com/userve/v1/media/video-snapshot/', {
  5. params: {
  6. "source": "xxxxxxxxxx",
  7. "save_as": "hello.png",
  8. "point": "00:00:10",
  9. "category_id": "5c18bc794e1e8d20dbfcddcc",
  10. "random_file_link": false
  11. }
  12. }).then(res => {
  13. console.log(res.data)
  14. })

返回示例

  1. {
  2. "created_at": 1547461561,
  3. "path": null,
  4. "created_by_id": 16042162,
  5. "mime_type": "image/png",
  6. "media_type": "image",
  7. "size": 99391,
  8. "name": "1gizRRuY71ZUcSZX.png",
  9. "status": "success",
  10. "reference": {},
  11. "cdn_path": "1gizRRRdklnf7gCD.png",
  12. "updated_at": 1547461561,
  13. "categories": [],
  14. "id": "5c3c63b9d1606e0b3fc7acb7"
  15. }

状态码说明

200 成功

400 请求参数错误

404 文件不存在

M3U8 视频拼接

接口

POST https://cloud.minapp.com/userve/v1/media/m3u8-concat/

请求参数说明

参数类型必填说明
m3u8sArrayY视频文件的 id 列表,按提交的顺序进行拼接
save_asStringY截图保存的文件名
category_idStringN文件所属类别 ID
random_file_linkBooleanN是否使用随机字符串作为文件的下载地址,不随机可能会覆盖之前的文件,默认为 true

返回参数

参数类型说明
created_atInteger创建时间 (格式为 unix 时间戳)
pathString路径
created_byInteger创建者 id
mime_typeStringmime_type 类型
media_typeString媒体类型
sizeInteger文件大小
nameString文件名
statusString文件状态
referenceObject引用
cdn_pathStringcdn 中保存的路径
updated_atInteger更新时间 (格式为 unix 时间戳)
categoriesString文件所属类别
idString本条记录 ID

代码示例

  1. var axios = require('axios').create({
  2. withCredentials: true
  3. })
  4. axios.post('https://cloud.minapp.com/userve/v1/media/m3u8-concat/', {
  5. params: {
  6. "m3u8s": ["xxxxxxxxxx", "xxxxxxxxxx"],
  7. "save_as": "hello.m3u8",
  8. "category_id": "5c18bc794e1e8d20dbfcddcc",
  9. "random_file_link": false,
  10. }
  11. }).then(res => {
  12. console.log(res.data)
  13. })

返回示例

  1. {
  2. "created_at": 1547461561,
  3. "path": null,
  4. "created_by_id": 16042162,
  5. "mime_type": "",
  6. "media_type": "",
  7. "size": "",
  8. "name": "hello.m3u8",
  9. "status": "pengding",
  10. "reference": "",
  11. "cdn_path": "1gizRRRdklnf7gCD.m3u8",
  12. "updated_at": 1547461561,
  13. "categories": [],
  14. "id": "5c3c63b9d1606e0b3fc7acb7"
  15. }

状态码说明

200 成功

400 请求参数错误

404 文件不存在

M3U8 视频剪辑

接口

POST https://cloud.minapp.com/userve/v1/media/m3u8-clip/

请求参数说明

参数类型必填说明
m3u8StringY视频文件的 id
save_asStringY截图保存的文件名
category_idStringN文件所属类别 ID
random_file_linkBooleanN是否使用随机字符串作为文件的下载地址,不随机可能会覆盖之前的文件,默认为 true
includeArrayN包含某段内容的开始结束时间,单位是秒。当 index 为 false 时,为开始结束分片序号
excludeArrayN不包含某段内容的开始结束时间,单位是秒。当 index 为 false 时,为开始结束分片序号
indexBooleanNinclude 或者 exclude 中的值是否为 ts 分片序号,默认为 false

返回参数

参数类型说明
created_atInteger创建时间 (格式为 unix 时间戳)
pathString路径
created_byInteger创建者 id
mime_typeStringmime_type 类型
media_typeString媒体类型
sizeInteger文件大小
nameString文件名
statusString文件状态
referenceObject引用
cdn_pathStringcdn 中保存的路径
updated_atInteger更新时间 (格式为 unix 时间戳)
categoriesString文件所属类别
idString本条记录 ID

代码示例

  1. var axios = require('axios').create({
  2. withCredentials: true
  3. })
  4. axios.post('https://cloud.minapp.com/userve/v1/media/m3u8-clip/', {
  5. params: {
  6. "m3u8": "xxxxxxxxxx",
  7. "include": [0, 20],
  8. "save_as": "0s_20s.m3u8",
  9. "category_id": "5c18bc794e1e8d20dbfcddcc",
  10. "random_file_link": false
  11. }
  12. }).then(res => {
  13. console.log(res.data)
  14. })

返回示例

  1. {
  2. "created_at": 1547461561,
  3. "path": null,
  4. "created_by_id": 16042162,
  5. "mime_type": "",
  6. "media_type": "",
  7. "size": "",
  8. "name": "hello.m3u8",
  9. "status": "pending",
  10. "reference": "",
  11. "cdn_path": "1gizRRRdklnf7gCD.m3u8",
  12. "updated_at": 1547461561,
  13. "categories": [],
  14. "_id": "5c3c63b9d1606e0b3fc7acb7"
  15. }

状态码说明

200 成功

400 请求参数错误

404 文件不存在

M3U8 时长和分片信息

接口

POST https://cloud.minapp.com/userve/v1/media/m3u8-meta/

请求参数说明

参数类型必填说明
m3u8StringY视频文件的 id

返回参数

res:

参数类型说明
status_codeInteger状态码
messageString返回信息
metaObject详见以下

meta 参数说明:

参数类型说明
duartionNumberm3u8 时长
pointsArray时间点

代码示例

  1. var axios = require('axios').create({
  2. withCredentials: true
  3. })
  4. axios.post('https://cloud.minapp.com/userve/v1/media/m3u8-meta/', {
  5. params: {
  6. "m3u8": "xxxxxxxxxx"
  7. }
  8. }).then(res => {
  9. console.log(res.data)
  10. })

返回示例

  1. {
  2. "status_code": 200,
  3. "message": "ok",
  4. "meta": {
  5. "duration": 2850.2974559999984,
  6. "points": [
  7. 11.277933,
  8. 23.7237,
  9. 34.6346,
  10. 42.008632999999996,
  11. 50.483765999999996,
  12. 64.764699,
  13. 70.80406599999999,
  14. 82.31556599999999,
  15. 92.892799,
  16. 100.200099,
  17. 114.74796599999999,
  18. 123.92379899999999,
  19. 131.09763199999998,
  20. 140.97416499999997,
  21. 158.32483199999996,
  22. 160.05989899999994,
  23. 172.70586599999996,
  24. 181.04753299999996,
  25. 191.79159999999996
  26. ]
  27. }
  28. }

状态码说明

200 成功

400 请求参数错误

404 文件不存在

音视频的元信息

接口

POST https://cloud.minapp.com/userve/v1/media/audio-video-meta/

请求参数说明

参数类型必填说明
sourceStringY文件的 id

返回参数

res:

参数类型说明
formatObject音视频格式信息,详见以下
streamsArraystream 列表,详见以下

format 参数说明:

参数类型说明
bitrateInteger比特率
durationNumber时长
formatString容器格式
fullnameString容器格式全称

streams 参数说明:

参数类型说明
indexInteger表示第几路流
typeString一般情况下, video 或 audio
bitrateInteger流码率
codecString流编码
codec_descString流编码说明
durationNumber流时长
video_fpsNumber(视频流)视频帧数
video_heightInteger(视频流)视频高度
video_widthInteger(视频流)视频宽度
audio_channelsInteger(音频流)音频通道数
audio_samplerateInteger(音频流)音频采样率

代码示例

  1. var axios = require('axios').create({
  2. withCredentials: true
  3. })
  4. axios.post('https://cloud.minapp.com/userve/v1/media/audio-video-meta/', {
  5. params: {
  6. "source": "xxxxxxxxxx"
  7. }
  8. }).then(res => {
  9. console.log(res.data)
  10. })

返回示例

  1. {
  2. "streams": [
  3. {
  4. "index": 0,
  5. "type": "video",
  6. "video_fps": 25,
  7. "video_height": 236,
  8. "video_width": 426,
  9. "codec_desc": "H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10",
  10. "codec": "h264",
  11. "bitrate": 99608,
  12. "duration": 184.8,
  13. "metadata": {
  14. "handler_name": "VideoHandler",
  15. "language": "und"
  16. }
  17. },
  18. {
  19. "index": 1,
  20. "type": "audio",
  21. "audio_channels": 2,
  22. "audio_samplerate": 44100,
  23. "codec_desc": "AAC (Advanced Audio Coding)",
  24. "codec": "aac",
  25. "bitrate": 48005,
  26. "duration": 184.855011,
  27. "metadata": {
  28. "handler_name": "SoundHandler",
  29. "language": "und"
  30. }
  31. }
  32. ],
  33. "format": {
  34. "duration": 184.902,
  35. "fullname": "QuickTime / MOV",
  36. "bitrate": 154062,
  37. "filesize": 3560797,
  38. "format": "mov,mp4,m4a,3gp,3g2,mj2"
  39. }
  40. }

状态码说明

200 成功

400 请求参数错误

404 文件不存在