接口规范 13. 文件上传及管理相关接口

简介: 13 文件上传及管理相关接口这组接口实现视频资源的上传及管理,为视频转码和发布提供支持。上传的服务器上的视频文件,经过转码发布后形成可以对外播出的在线视频资源。本小节描述文件上传和管理的接口,转码接口在下一章节说明。

13 文件上传及管理相关接口

这组接口实现视频资源的上传及管理,为视频转码和发布提供支持。
上传的服务器上的视频文件,经过转码发布后形成可以对外播出的在线视频资源。
本小节描述文件上传和管理的接口,转码接口在下一章节说明。

13.1.文件上传接口

  • 用途
    通过HTTP POST协议上传视频文件。文件上传接口是一个特殊的接口,接口位置与其他接口有差异。
    上传协议采用HTTP POST协议,提交form的数据采用multipart/form-data编码(enctype="multipart/form-data")。
    这里有详细的规范(对于Web开发,通常您无需阅读这个文档):
    rfc1867 http://www.ietf.org/rfc/rfc1867.txt
    对于采用Web页面上传的应用,采用典型的form提交上传文件即可,数据提交地址设为本接口地址。
  • 请求
    http://host/upload?app=g3_video&sub_path=&file_name=&token=abcd&field_name=field_abcd
    其中:
    http://host/upload 是上传位置,保持不变。host替换成实际的流媒体服务器IP地址或域名。
    参数:
    app=g3_video,表示上传的是视频文件,要保持不变。
    sub_path表示上传到哪个子目录下,如果省略表示上传到用户根目录下。
    file_name上传文件要在服务器上保存的文件名,如果跟上传文件名一样,则省略。该参数提供了一个上传文件在服务器上重新命名的机会。中文件名要采用UTF-8编码。
    token意义跟其他接口一样。

  • 响应
    {
    "code":0
    }

13.2.查询文件列表接口

  • 用途
    查询服务器上的某个目录下的视频文件列表。
  • 请求
    fileMgr/?request=list_files&subpath=&page=1
    sub_path 文件存放的子目录,对应上传文件时的sub_path参数。如果省略,则查询用户根目录下的文件。
    page页码,该接口支持分页查询,分页信息在返回数据中。
  • 响应
    {
    "code":0,
    "data":{
        "page":"1",
        "page_size":"50",
        "pages":"1",
        "total":"1",
        "count":1,
        "items":[{
                "filename":"案例视频8.mp4",
                "mtime":"2018-01-12 12:43",
                "size":"3153954",
                "charset":"UTF-8",
                "timestamp":1515732410,
                "is_media":1,
                "duration":98,
                "bitrate":255309,
                "stream_number":2,
                "timestamp_m":1515397208,
                "streams":[
                            {
                            "index":"0",
                            "type":"video",
                            "codec":"h264",
                            "pic_width":640,
                            "pic_height":352,
                            "bitrate":208980,
                            "duration":98,
                            "pix_fmt":"yuv420p",
                            "frame_rate":"28/1"
                            },
                            {
                            "index":"1",
                            "type":"audio",
                            "codec":"aac",
                            "lan":"und",
                            "channels":1,
                            "bitrate":43970,
                            "duration":98,
                            "sample_rate":44100
                            }
                          ]
                }]
        }
    }

    返回数据包含分页信息,在文件量较大时要按页查询。
    items元素包含0或多个文件信息。streams元素是该文件包含的音视频流信息,一个多媒体文件会包含1到多个音视频流
    filename 文件名,返回的文件名总是采用UTF-8编码
    charset 文件名在服务器上的字符集编码,省略表示是UTF-8编码。如果为非UTF-8编码,在后续的接口中请将该属性带入
    mtime 文件最后的修改时间
    size 文件大小,单位字节
    duration 文件播出时长,单位秒
    bitrate 综合码率,单位bps
    stream_number 文件包含的音视频流总数
    streams元素
    streams包含0或多个音视频流,属性:
    index 流的索引编号,在转码接口中,在多语言音频流的情况下,可以通过传入音频流索引号选择指定的音频流。
    type 视频或音频,对应 video 或 audio
    codec 流编码格式,例如视频h264编码,音频aac编码等
    bitrate 流的比特率,单位bps
    pix_fmt 视频帧格式
    frame_rate 帧率
    pic_width 视频画幅宽度
    pic_height 视频画幅高度
    lan 音频语言信息,语言编码缩写
    channels 音频声道数
    sample_rate音频采样率

13.3.查询文件目录接口

  • 用途
    查询服务器上的文件目录。
  • 请求
    fileMgr/?request=list_dirs&subpath=
    sub_path 文件存放的子目录,如果省略,则查询用户根目录下的文件目录。
  • 响应
    {
    "code":0,
    "data":{
        "count":2,
        "items":[
            {
                "filename":"auto",
                "mtime":"2018-01-06 16:36",
                "size":"4096",
                "timestamp":0,
                "auto_transcode":1
            },
            {
                "filename":"audio",
                "mtime":"2017-12-27 18:09",
                "size":"4096",
                "timestamp":0,
                "auto_transcode":0
            }]
     }
    }

    items元素包含0或多个目录信息。
    filename 目录名
    mtime 最后修改时间
    auto_transcode 是否针对该目录设置了自动转码任务,1表示有自动转码任务

13.4.查询文件信息接口

  • 用途
    查询服务器上的某个视频文件的信息。
  • 请求
    fileMgr/?request=get_file&filename=案例视频8.mp4&charset=UTF-8
    filename 文件名,如果在子目录中,应当包含完整的相对目录,如 mypath/myfile.mp4,文件名采用UTF-8编码
    charset 文件名在服务器上的实际字符集编码,在查询文件列表接口中有返回。
  • 响应
    {
    "code":0,
    "data":{
        "count":1,
        "items":[
            {
                "filename":"/案例视频8.mp4",
                "charset":"UTF-8",
                "mtime":1515732213,
                "size":3153954,
                "timestamp":1516941450,
                "is_media":1,
                "duration":98,
                "bitrate":255309,
                "stream_number":2,
                "timestamp_m":1515397208,
                "streams":[
                    {
                        "index":"0",
                        "type":"video",
                        "codec":"h264",
                        "pic_width":640,
                        "pic_height":352,
                        "bitrate":208980,
                        "duration":98,
                        "pix_fmt":"yuv420p",
                        "frame_rate":"28/1"
                    },
                    {
                        "index":"1",
                        "type":"audio",
                        "codec":"aac",
                        "lan":"und",
                        "channels":1,
                        "bitrate":43970,
                        "duration":98,
                        "sample_rate":44100
                    }
                ]
            }
        ]
    }
    }

    返回一个文件的信息,包含多媒体信息。
    返回数据的文件信息的描述与查询文件列表接口中对文件信息的描述相同。

13.5.删除文件接口

  • 用途
    删除服务器上的文件。
  • 请求
    fileMgr/?request=remove&filename=myvideo.mp4&charset=ASCII
    filename 文件名,如果在子目录中,应当包含完整的相对目录,如 mypath/myfile.mp4,文件名采用UTF-8编码
    charset 文件名在服务器上的实际字符集编码,在查询文件列表接口中有返回。
  • 响应
    {
    "code":0
    }
相关文章
|
4月前
|
JavaScript 前端开发 Java
SpringBoot 引入 smart-doc 接口文档管理插件,以及统一接口返回,最后推送到 Torna,进行统一管理
本文介绍了如何在SpringBoot项目中整合smart-doc接口文档管理插件,实现接口文档的生成和统一管理,并展示了如何将文档推送到Torna接口文档管理系统进行进一步的集中管理。
318 0
SpringBoot 引入 smart-doc 接口文档管理插件,以及统一接口返回,最后推送到 Torna,进行统一管理
|
4月前
|
开发框架 前端开发 API
使用代码生成工具快速开发应用-结合后端Web API提供接口和前端页面快速生成,实现通用的业务编码规则管理
使用代码生成工具快速开发应用-结合后端Web API提供接口和前端页面快速生成,实现通用的业务编码规则管理
|
7月前
|
前端开发
开发指南002-前后端信息交互规范-请求类
请求类由org.qlm.io.vo.RequestInfo定义:
|
API 数据安全/隐私保护 网络架构
接口文档编写规范(前后端分离项目接口api)
接口文档编写规范(前后端分离项目接口api)
567 0
|
前端开发 API
前端常用获取接口数据方法
前端常用获取接口数据方法
470 2
前端常用获取接口数据方法
|
安全 API 开发者
PSCI接口规范(下)
PSCI接口规范(下)
|
监控 安全 Linux
|
Kubernetes API 网络架构
开发 k8s 管理平台 - k8sailor 05. RESTFul API 接口规范与请求应答约定
开发 k8s 管理平台 - k8sailor 05. RESTFul API 接口规范与请求应答约定
298 0
开发 k8s 管理平台 - k8sailor 05. RESTFul API 接口规范与请求应答约定
|
存储 JSON 前端开发
接口测试平台代码实现30:接口库-接口列表
接口测试平台代码实现30:接口库-接口列表
接口测试平台代码实现30:接口库-接口列表
|
前端开发 小程序 Java
如何优雅的进行接口管理
在这前后端分离大行其道的今天,如何优雅的管理接口,对应提高工作效率非常重要。而接口又是由后端提供的,这个任务自然而然的又落在后台开发人员的身上。在这里提供三种常见的接口管理方案,这三种方案没有属谁最优,属谁最差。根据项目的情况而定。
600 0
如何优雅的进行接口管理