接口规范 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
    }

原文地址:http://blog.51cto.com/livestreaming/2065414

时间: 2024-08-11 09:08:26

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

文件上传更新服务相关

需求: 客户端向服务端发送一次请求,请求是一系列配置文件的文件名.当前客户端所持有文件的版本号.期待服务端返回的数据形式(url或二进制数据).当请求的配置文件有更新,服务端返回相应的url或二进制数据.之所以要分url和二进制数据,因为有的配置文件比较小且比较重要需要马上获取到数据:而有的配置文件稍微大一些,重要性比较低,可以在客户端拉线程慢慢下. 最终实现: 分为后台管理系统(负责文件上传)和数据更新服务. 文件上传部分是用Vue.js+KOA实现.其中关于文件上传那块,浏览器端使用Ajax

跟着百度学PHP[13]-文件上传

PS:上传的时候一定要用POST方法,GET方法不行. 文件上传的entype要改成“mutilpart/form-data”这个编码 <html> <form action="upload.php" method="POST" enctype="mutilpart/form-data"> <input type="hidden" name="MAX_FILE_SIZE">

JavaWeb学习总结(五十)——文件上传和下载

在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用Servlet获取上传文件的输入流然后再解析里面的请求参数是比较麻烦,所以一般选择采用apache的开源工具common-fileupload这个文件上传组件.这个common-fileupload上传组件的jar包可以去apache官网上面下载,也可以在struts的lib文件夹下面找到,stru

JavaWeb文件上传和下载

在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用Servlet获取上传文件的输入流然后再解析里面的请 求参数是比较麻烦,所以一般选择采用apache的开源工具common-fileupload这个文件上传组件.这个common- fileupload上传组件的jar包可以去apache官网上面下载,也可以在struts的lib文件夹下面找到,st

JavaWeb学习总结,文件上传和下载

在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用Servlet获取上传文件的输入流然后再解析里面的请求参数是比较麻烦,所以一般选择采用apache的开源工具common-fileupload这个文件上传组件.这个common-fileupload上传组件的jar包可以去apache官网上面下载,也可以在struts的lib文件夹下面找到,stru

JavaWeb中的文件上传和下载功能的内容就这么多

一.开发环境搭建 创建一个FileUploadAndDownLoad项目,加入Apache的commons-fileupload文件上传组件的相关Jar包,如下图所示: 二.实现文件上传 2.1.文件上传页面和消息提示页面 upload.jsp页面的代码如下: 1<%@ page language="java" pageEncoding="UTF-8"%> 2<!DOCTYPE HTML> 3<html> 4<head>

JavaWeb学习总结(五十)——文件上传和下载 http://www.cnblogs.com/xdp-gacl/p/4200090.html

在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用Servlet获取上传文件的输入流然后再解析里面的请求参数是比较麻烦,所以一般选择采用apache的开源工具common-fileupload这个文件上传组件.这个common-fileupload上传组件的jar包可以去apache官网上面下载,也可以在struts的lib文件夹下面找到,stru

JavaWeb——文件上传和下载

在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用Servlet获取上传文件的输入流然后再解析里面的请求参数是比较麻烦,所以一般选择采用apache的开源工具common-fileupload这个文件上传组件.这个common-fileupload上传组件的jar包可以去apache官网上面下载,也可以在struts的lib文件夹下面找到,stru

JavaWeb实现文件上传下载功能实例解析

转:http://www.cnblogs.com/xdp-gacl/p/4200090.html JavaWeb实现文件上传下载功能实例解析 在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用Servlet获取上传文件的输入流然后再解析里面的请求参数是比较麻烦,所以一般选择采用apache的开源工具common-fileupload这个文件上传组件