华为云用户手册

  • ts_compare函数 用于对比当前时间周期内的计算结果与n秒之前时间周期内的计算结果。ts_compare函数必须按照时间列进行分组(GROUP BY)。 语法:ts_compare(x, n1, n2, n3...) 对比当前时间周期内的计算结果与n1、n2、n3秒之前时间周期内的计算结果。 表4 参数说明 参数名称 描述 类型 是否必选 x 待环比表达式。 double 是 n? 时间窗口,单位为毫秒。例如3600000(1小时)、86400000(1天)、604800000(1周)、31622400000(1年)。 long 是 返回值类型:数组。格式为[当前计算结果, n秒前的计算结果, 当前计算结果与n秒前计算结果的比值, n秒前的UNIX时间戳]。 示例:select time,ts_compare(pv,86400000) as diff from (select count(*) as pv,date_histogram(field=time, calendar_interval=day) as time group by time) as t group by time 表5 查询分析结果 类型 场景 查询语句 time,ts_compare(pv,86400000) as diff from (select count(*) as pv,date_histogram(field=time, calendar_interval=day) as time group by time) as t group by time 返回结果 [20,20,1,1698766080000]
  • POSTGRESQL错误日志结构化模板日志详情 POSTGRESQL错误日志示例 表3 结构化模板示例 模板名称 示例日志 POSTGRESQL错误日志 {"log_type":"error_log","severity":"WARNING","log_time":"2022-08-22T06:52:08Z","raw_message":"Occur error when reading bytes from a network handler. Client actively closes the connection.","node_id":"d285609201534696bdcd648519fe2b8dno02","instance_id":"5b67dc63ba824145aae1f12ff51e58b8in02"} 结构化字段及字段说明 表4 结构化字段 字段 示例 描述 类型 log_type error_log 日志类型 string severity WARNING 日志级别 string log_time 2022-08-22T06:52:08Z 日志产生时间 string raw_message Occur error when reading bytes from a network handler. Client actively closes the connection. 错误日志内容 string node_id d285609201534696bdcd648519fe2b8dno02 节点id string instance_id 5b67dc63ba824145aae1f12ff51e58b8in02 实例id string
  • cast函数 将值从一种数据类型转换为另一种数据类型,并将数据类型提供给动态参数。 在允许表达式的任何地方都允许使用铸造表达式。 语法:CAST(Expression as Datatype) 要将表达式转换到的数据类型是目标类型。要从中转换的表达式的数据类型是源类型。 表2 参数说明 参数名称 描述 类型 是否必选 expression 源类型的表达式。 任意 是 Datatype 目标类型。 任意 是 下表显示了数据类型的源类型和目标类型之间的有效显式转换。 to/from boolean date string double long int boolean Y Y Y Y Y Y date - Y - Y Y Y string Y Y Y Y Y Y double - Y Y Y Y Y long - Y Y Y Y Y int - Y Y Y Y Y 返回值类型:目标数据类型。 示例:select cast(time as date) 表3 查询分析结果 类型 场景 查询语句 cast(time as date) 返回结果 2023-08-31 23:11:17.000
  • 示例 有两个表,access表示主机的接入指标包含路径,时延,状态码,host为主机指标包含cpu和内存。通过JOIN可以关联接入和主机指标,查看相同主机的不同维度的指标情况。 LEFT JOIN 查询语句 SELECT "access".__time, "access".host_ip, "access".cost, "host".cpu, "host".memory FROM log "access" LEFT JOIN (select memory,cpu,host_ip from log) host ON "access".host_ip = "host".host_ip 返回结果,总共60条数据。 RIGHT JOIN 查询语句 SELECT "access".__time, "host".host_ip, "access".cost, "host".cpu, "host".memory FROM log "access" RIGHT JOIN (select memory,cpu,host_ip from log) host ON "access".host_ip = "host".host_ip 返回结果,总共60条数据。 INNER JOIN 查询语句 SELECT "access".__time, "host".host_ip, "access".cost, "host".cpu, "host".memory FROM log "access" INNER JOIN (select memory,cpu,host_ip from log) host ON "access".host_ip = "host".host_ip 返回结果,总共45条数据。
  • 语法 select key from t1 LEFT|RIGHT|INNER JOIN t2 on t1.key=t2.key 当前日志服务支持LEFT JOIN、RIGHT JOIN和INNER JOIN三种JOIN子句方式。具体功能如下: 表1 JOIN方式 说明 LEFT JOIN 以左表(t1)的结果为基础,关联右表(t2)数据。 说明: 当表名为纯数字时,需要给表名加上双引号转换成字符串。例如:表名是123,JOIN语句中该表应写成“123”。 RIGHT JOIN 以右表(t2)的结果为基础,关联左表(t1)数据。 说明: 当表名为纯数字时,需要给表名加上双引号转换成字符串。例如:表名是123,JOIN语句中该表应写成“123”。 INNER JOIN 两个表的结果(elb1,elb2)交集数据
  • GeminiDB Mongo错误日志结构化模板日志详情 GeminiDB Mongo错误日志示例 表1 结构化模板示例 模板名称 示例日志 GeminiDB Mongo错误日志 {"log_type":"error_log","severity":"Error","log_time":"2022-08-22T09:33:15.142+0000","raw_message":"E QUERY [ClusterDisasterBackupChangeJob] Get global setting disasterBackup failed.","instance_id": "5b67dc63ba824145aae1f12ff51e58b8in02","node_id": "686a791e690e4db3af591ec4b6f72916no02"} 结构化字段及字段说明 表2 结构化字段 字段 示例 描述 类型 log_type error_log 日志类型 string severity Error 日志级别 string log_time 2022-08-22T09:33:15.142+0000 日志产生时间 string raw_message E QUERY [ClusterDisasterBackupChangeJob] Get global setting disasterBackup failed. 日志内容 string instance_id 5b67dc63ba824145aae1f12ff51e58b8in02 实例Id string node_id 686a791e690e4db3af591ec4b6f72916no02 节点Id string
  • GeminiDB Mongo慢日志结构化模板日志详情 GeminiDB Mongo慢日志示例 表3 结构化模板示例 模板名称 示例日志 GeminiDB Mongo慢日志 {"log_type":"slow_log","log_time":"2022-08-20T10:04:03.204000Z","namespace":"data0820.table","database":"data0820","collection":"table","operate_type":"insert","docs_scanned":0,"docs_returned":0,"n_deleted":0,"n_matched":0,"n_modified":0,"n_inserted":10,"cost_time":555,"lock_time":0,"whole_message":{"op":"insert","ns":"data0820.usrtable","command":"{N}","ninserted":1,"keysInserted":1,"numYield":0,"locks":{"Global":{"acquireCount":{"r":5,"w":5}},"Database":{"acquireCount":{"w":4,"W":1}},"Collection":{"acquireCount":{"w":2}},"oplog":{"acquireCount":{"w":2}}},"responseLength":230,"protocol":"op_msg","millis":555,"ts":{"$date":1660989843204},"client":"192.168.0.64","appName":"MongoDBShell","allUsers":[{"user":"rwuser","db":"admin"}],"user":"rwuser@admin"},"instance_id":"5b67dc63ba824145aae1f12ff51e58b8in02","node_id":"686a791e690e4db3af591ec4b6f72916no02"} 结构化字段及字段说明 表4 结构化字段 字段 示例 描述 类型 log_type slow_log 日志类型 string log_time 2022-08-20T10:04:03.204000Z 慢日志产生的时间 string namespace data0820.table 命名空间 string database data0820 库名称 string collection table 表名称 string operate_type insert 操作类型 string docs_scanned 0 数据库扫描行数 long docs_returned 0 查询返回结果行数 long n_deleted 0 删除行数 long n_matched 0 更新匹配行数 long n_modified 0 实际更新行数 long n_inserted 10 插入行数 long cost_time 555 操作花费的时间 long lock_time 0 wait_lock的时间 long whole_message {"op":"insert","ns":"data0820.usrtable","command":"{N}","ninserted":1,"keysInserted":1,"numYield":0,"locks":{"Global":{"acquireCount":{"r":5,"w":5}},"Database":{"acquireCount":{"w":4,"W":1}},"Collection":{"acquireCount":{"w":2}},"oplog":{"acquireCount":{"w":2}}},"responseLength":230,"protocol":"op_msg","millis":555,"ts":{"$date":1660989843204},"client":"192.168.0.64","appName":"MongoDBShell","allUsers":[{"user":"rwuser","db":"admin"}],"user":"rwuser@admin"} 原始日志信息 string instance_id 5b67dc63ba824145aae1f12ff51e58b8in02 实例ID string node_id 686a791e690e4db3af591ec4b6f72916no02 节点ID string
  • DDS错误日志结构化模板日志详情 DDS错误日志示例日志 表3 结构化模板示例 模板名称 示例日志 DDS错误日志 {"log_type": "error_log","severity": "Error","log_time": "2022-08-22T09:33:15.142+0000","raw_message": "E QUERY [ClusterDisasterBackupChangeJob] Get global setting disasterBackup failed.","instance_id": "5b67dc63ba824145aae1f12ff51e58b8in02","node_id": "686a791e690e4db3af591ec4b6f72916no02"} 结构化字段及字段说明 表4 结构化字段 字段 示例 描述 类型 log_type error_log 日志类型 string severity Error 日志级别 string log_time 2022-08-22T09:33:15.142+0000 日志产生时间 string raw_message E QUERY [ClusterDisasterBackupChangeJob] Get global setting disasterBackup failed. 日志内容 string instance_id 5b67dc63ba824145aae1f12ff51e58b8in02 实例Id string node_id 686a791e690e4db3af591ec4b6f72916no02 节点Id string
  • DDS审计日志结构化模板日志详情 DDS审计日志示例 表5 结构化模板示例 模板名称 示例日志 DDS审计日志 {"topic":"auditLog","instanceid":"9fbf813bc27e4a3ab54bddf783a4f774in01","nodeid":"bf4cb0413d0b4221be94b08471708586no01","db":"test","coll":"testCollection","optype":"update","time":"2022-08-05T08:24:15.536+0000","user_ip":"10.4.23.205","user_port":"47668","user":"rw_testuser","param":{"command":"update","ns":"test.testCollection","op":[{"q":{"vin":"LDP31B965NG036174"},"u":{"$set":{"timestamp":{"$numberLong":"1659687855535"},"deviceTime":{"$numberLong":"1659687855340"},"longitude":"119.35516805555555","latitude":"26.057936388888891","location":"119.35516805555555,26.057936388888891","height":"10.097286797128618","direction":"12","speed":14,"accuracy":"0","h3Address7":"8741b5300ffffff"}},"upsert":true}],"args":{"update":"testCollection","ordered":true,"$db":"test","$clusterTime":{"clusterTime":{"$timestamp":{"t":1659687855,"i":1685}},"signature":{"hash":{"$binary":"CP5bfEf+gBJZdAxCKtF9HiSeqQY=","$type":"00"},"keyId":{"$numberLong":"7102408879899674942"}}},"lsid":{"id":{"$binary":"PXVVrbuvRuGkypCbu/oXXQ==","$type":"04"}}}}} 结构化字段及字段说明 表6 结构化字段 字段 示例 描述 类型 topic auditLog 消息主题 string instanceid 9fbf813bc27e4a3ab54bddf783a4f774in01 实例ID string nodeid bf4cb0413d0b4221be94b08471708586no01 节点ID string db test 数据库名 string coll testCollection 开启分片的集合名 string optype update 操作类型 string time 2022-08-05T08:24:15.536+0000 审计日志时间 string user_ip 10.4.23.205 客户端IP string user_port 47668 客户端端口 string user rw_testuser 数据库用户账户 string param {\"command\":\"update\",\"ns\":\"test.testCollection\",\"op\":[{\"q\":{\"vin\":\"LDP31B965NG036174\"},\"u\":{\"$set\":{\"timestamp\":{\"$numberLong\":\"1659687855535\"},\"deviceTime\":{\"$numberLong\":\"1659687855340\"},\"longitude\":\"119.35516805555555\",\"latitude\":\"26.057936388888891\",\"location\":\"119.35516805555555,26.057936388888891\",\"height\":\"10.097286797128618\",\"direction\":\"12\",\"speed\":14,\"accuracy\":\"0\",\"h3Address7\":\"8741b5300ffffff\"}},\"upsert\":true}],\"args\":{\"update\":\"testCollection\",\"ordered\":true,\"$db\":\"test\",\"$clusterTime\":{\"clusterTime\":{\"$timestamp\":{\"t\":1659687855,\"i\":1685}},\"signature\":{\"hash\":{\"$binary\":\"CP5bfEf+gBJZdAxCKtF9HiSeqQY=\",\"$type\":\"00\"},\"keyId\":{\"$numberLong\":\"7102408879899674942\"}}},\"lsid\":{\"id\":{\"$binary\":\"PXVVrbuvRuGkypCbu/oXXQ==\",\"$type\":\"04\"}}}} 数据库操作详情和参数 string
  • DDS慢日志结构化模板日志详情 DDS慢日志示例日志 表1 结构化模板示例 模板名称 示例日志 DDS慢日志 {"log_type": "slow_log","log_time": "2022-08-20T10:04:03.204000Z","namespace": "data0820.table","database": "data0820","collection": "table","operate_type": "insert","docs_scanned": 0,"docs_returned": 0,"n_deleted": 0,"n_matched": 0,"n_modified": 0,"n_inserted": 10,"cost_time": 555,"lock_time": 0,"whole_message": "{\"op\": \"insert\", \"ns\": \"data0820.usrtable\", \"command\": \"{N}\", \"ninserted\": 1, \"keysInserted\": 1, \"numYield\": 0, \"locks\": {\"Global\": {\"acquireCount\": {\"r\": 5, \"w\": 5}}, \"Database\": {\"acquireCount\": {\"w\": 4, \"W\": 1}}, \"Collection\": {\"acquireCount\": {\"w\": 2}}, \"oplog\": {\"acquireCount\": {\"w\": 2}}}, \"responseLength\": 230, \"protocol\": \"op_msg\", \"millis\": 555, \"ts\": {\"$date\": 1660989843204}, \"client\": \"192.168.0.64\", \"appName\": \"MongoDB Shell\", \"allUsers\": [{\"user\": \"rwuser\", \"db\": \"admin\"}], \"user\": \"rwuser@admin\"}","instance_id": "5b67dc63ba824145aae1f12ff51e58b8in02","node_id": "686a791e690e4db3af591ec4b6f72916no02","client_ip": "190.12.11.11","username": "user中文","keys_examined": 0} 结构化字段及字段说明 表2 结构化字段 字段 示例 描述 类型 log_type slow_log 日志类型 string log_time 2022-08-20T10:04:03.204000Z 慢日志产生时间 string namespace data0820.table 命名空间 string database data0820 库名称 string collection table 表名称 string operate_type insert 操作类型 string docs_scanned 0 数据库扫描行数 long docs_returned 0 查询返回结果行数 long n_deleted 0 删除行数 long n_matched 0 更新匹配行数 long n_modified 0 实际更新行数 long n_inserted 10 插入行数 long cost_time 555 操作花费的时间 long lock_time 0 wait_lock的时间 long whole_message {\"op\": \"insert\", \"ns\": \"data0820.usrtable\", \"command\": \"{N}\", \"ninserted\": 1, \"keysInserted\": 1, \"numYield\": 0, \"locks\": {\"Global\": {\"acquireCount\": {\"r\": 5, \"w\": 5}}, \"Database\": {\"acquireCount\": {\"w\": 4, \"W\": 1}}, \"Collection\": {\"acquireCount\": {\"w\": 2}}, \"oplog\": {\"acquireCount\": {\"w\": 2}}}, \"responseLength\": 230, \"protocol\": \"op_msg\", \"millis\": 555, \"ts\": {\"$date\": 1660989843204}, \"client\": \"192.168.0.64\", \"appName\": \"MongoDB Shell\", \"allUsers\": [{\"user\": \"rwuser\", \"db\": \"admin\"}], \"user\": \"rwuser@admin\"} 原始日志信息 string instance_id 5b67dc63ba824145aae1f12ff51e58b8in02 实例ID string node_id 686a791e690e4db3af591ec4b6f72916no02 节点ID string
  • 操作步骤 使用合作伙伴账号登录华为云。 单击页面右上角账号下拉框中的“伙伴中心”,进入伙伴中心。 在顶部导航栏中选择“主页”。 在“账户余额”区域,单击“充值”。 进入充值页面。 合作伙伴可根据需要开启“余额预警”功能,并自定义预警金额。 选择充值方式充值。 当伙伴和华为云的签约主体为“华为软件技术有限公司”或“ 华为云计算 技术有限公司”时,支持如下两种支付方式。 在线支付 选择“在线充值”页签,填写充值金额后,单击“下一步”。 跳转到对应的充值页面,继续完成充值操作。 转账汇款 合作伙伴首次使用专属汇款账号汇款,需要输入验证码,单击“验证并开通”,在线获取专属汇款账号。 获取专属汇款账号成功后,线下转账至该汇款账号,系统在收到银行汇款后将自动匹配到您的华为云账户并为您完成充值。 合作伙伴可以下载华为云专属汇款账号证明文件,查看专用充值的账号的详细信息。也可以单击“发送免费短信”,将自己的专属汇款账号信息,发送到自己的手机。 当伙伴和华为云的签约主体不是“华为软件技术有限公司”或“华为云计算技术有限公司”时,如需充值请咨询您当地的华为渠道经理。
  • 切换其他语言的输入法 以Windows 2008操作系统云服务器,切换日语输入法为例,: 登录云服务器,打开“控制面板”。 单击“区域和语言”选项。 图7 区域和语言 选择“键盘和语言”标签,并单击“更改键盘”。 图8 键盘和语言 打开“文本服务和输入语言”对话框,在“常规”标签中单击“添加”。 图9 文本服务和输入语言 在弹出的“添加输入语言”对话框中,找到“日语(日本)”。 图10 添加输入语言 双击“日语(日本)”展开,双击“键盘”子项展开,勾选“Microsoft IME”和“日语”,单击“确定”,分别再单击“应用”和“确定”保存修改后退出。 图11 选择日语
  • 处理方法 在控制台重启主机,进入单用户模式。 进入单用户模式的详细操作请参考Linux云服务器如何进入单用户模式重置root密码 执行以下命令检查/etc/passwd文件 。 cat /etc/passwd 确认passwd文件已被破坏,执行以下命令使用系统初始的备份passwd-文件替换损坏的passwd文件 。 cp /etc/passwd- /etc/passwd 该操作会造成自行添加的用户丢失,如果为应用运行的用户会导致应用启动失败,待修复后请自行添加用户。 执行以下命令退出当前根目录至initramfs的根目录。 exit 重启云服务器。 (可选)待系统启动,添加丢失的用户,例如执行以下命令添加Nginx运行用户nobody并指定该用户shell为/sbin/nologin(请根据场景添加用户,需要登录系统的用户需要指定shell为/bin/bash)。 useradd nobody -s /sbin/nologin
  • 操作场景 本节操作适用于Linux操作系统云服务器/etc/passwd文件损坏导致云服务器无法登录的问题。 本节操作为紧急恢复系统方法,需要在单用户模式下会将系统备份初始备份/etc/passwd-文件替换已损坏的/etc/passwd文件,该操作会造成自行添加的用户丢失(包括应用运行的用户,可以参考/etc/shadow文件添加其他账号)。 本节操作涉及重启云服务器操作,重启云服务器会造成业务中断,请谨慎操作。
  • 响应示例 状态码: 200 正常 { "user_id" : "******6045184a8194e021113e******", "sip_ip" : "10.95.144.***", "sip_port" : "5080", "quota" : { "consecutive_access_time" : { "total" : 120, "used" : 120 }, "password" : { "total" : 10, "used" : 2 }, "random_access_time" : { "total" : 240, "used" : 240 }, "stream" : { "total" : 500, "used" : 8 }, "active_stream" : { "total" : 200, "used" : 4 }, "device" : { "total" : 500, "used" : 0 }, "aksk" : { "total" : 10, "used" : 6 }, "http_num" : { "total" : 10, "used" : 5 }, "http_active_num" : { "total" : 5, "used" : 1 }, "rtmp_num" : { "total" : 0, "used" : 0 } }, "created_at" : "2018-10-25T03:06:10Z", "is_subscribed" : true } 状态码: 404 找不到资源或没有开通服务。具体返回错误码请参考错误码说明。 { "error_msg" : "Failed to find the user subscription info.", "error_code" : "VIS.0015" }
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 user_id String 用户ID。 sip_ip String SIP服务器地址,VIS对外提供的设备注册地址。 sip_port String SIP服务器端口,VIS对外提供的设备注册端口,固定为5080。 quota quotaInfo object 开通服务返回的quota体。 created_at String 创建时间,格式为:YYYY-MM-DDTHH:MM:SSZ(UTC时间)。 is_subscribed Boolean 用户是否开通服务。 true:表示开通。 false:表示未开通。 表4 quotaInfo 参数 参数类型 描述 password PassWordInfo object GB/T28181凭证配额信息。 consecutive_access_time Consecutive_Access_TimeInfo object GB/T28181设备连续接入时长的配额信息。 random_access_time Random_Access_TimeInfo object GB/T28181设备随机接入时长的配额信息。 stream StreamInfo object 视频流配额信息。 active_stream Active_StreamInfo object 激活视频流配额信息。 device DeviceInfo object 设备配额信息。 aksk AKSKInfo object AKSK凭证配额信息。 http_num HttpInfo object http_flv配额信息。 http_active_num HttpActiveInfo object http_flv激活配额信息。 rtmp_num RtmpInfo object rtmp配额信息。 表5 PassWordInfo 参数 参数类型 描述 total Integer GB/T28181凭证总配额量。 used Integer GB/T28181凭证已创建量。 表6 Consecutive_Access_TimeInfo 参数 参数类型 描述 total Integer 设备连续接入的总时长。 used Integer 设备已使用的时长。 表7 Random_Access_TimeInfo 参数 参数类型 描述 total Integer GB/T28181设备随机接入的总时长。 used Integer GB/T28181设备随机已接入的时长。 表8 StreamInfo 参数 参数类型 描述 total Integer 视频流总配额量。 used Integer 视频流已创建量。 表9 Active_StreamInfo 参数 参数类型 描述 total Integer 可激活视频流总配额量。 used Integer 视频流已激活量。 表10 DeviceInfo 参数 参数类型 描述 total Integer 设备总配额量。 used Integer 设备已创建量。 表11 AKSKInfo 参数 参数类型 描述 total Integer AKSK凭证总配额量。 used Integer AKSK凭证已创建量。 表12 HttpInfo 参数 参数类型 描述 total Integer http_flv总配额数量。 used Integer http_flv已创建数量。 表13 HttpActiveInfo 参数 参数类型 描述 total Integer http_flv激活总配额数量。 used Integer http_flv已激活数量。 表14 RtmpInfo 参数 参数类型 描述 total Integer rtmp总配额数量。 used Integer rtmp已创建数量。
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 普通租户的token。 Authorization 否 String 使用AK/SK方式认证时必选,携带的鉴权信息。 X-Sdk-Date 否 String 使用AK/SK方式认证时必选,请求的发生时间。 X-Project-Id 否 String 使用AK/SK方式认证时必选,携带项目ID信息。
  • 请求示例 RTMP POST /v1/3266392d188c47d09948b1**********/streams { "name" : "stream_test1", "access_type" : "RTMP", "encode_type" : "H264", "share_type" : "PUBLIC", "access_key" : "ALKJOWLKJSDNFGO******KSJDF", "description" : "", "tag" : [ { "key" : "group", "value" : "number1" } ] } HTTP-FLV POST /v1/3266392d188c47d09948b1**********/streams { "name" : "stream_test2", "access_type" : "HTTP-FLV", "encode_type" : "H264", "share_type" : "PUBLIC", "url" : "https://xxxxxxxx.com/live", "description" : "", "tag" : [ { "key" : "group", "value" : "number1" } ] }
  • 响应示例 状态码: 201 正常 示例 1 { "stream_id" : "stream-0BOPSRsT", "name" : "stream_test1", "encode_type" : "H264", "access_type" : "RTMP", "access_key" : "ALKJOWLKJSDNFGO******KSJDF", "share_type" : "PUBLIC", "state" : "STOPPED", "created_at" : "2018-06-12T13:00:01Z", "updated_at" : "2018-06-12T13:00:01Z", "description" : "", "tag" : [ { "key" : "group", "value" : "number1" } ] } 示例 2 { "stream_id" : "stream-9IzU3TdL", "name" : "stream_test2", "encode_type" : "H264", "access_type" : "HTTP-FLV", "url" : "https://xxxxxxxx.com/live", "share_type" : "PUBLIC", "state" : "STOPPED", "created_at" : "2018-06-12T13:00:01Z", "updated_at" : "2018-06-12T13:00:01Z", "description" : "", "tag" : [ { "key" : "group", "value" : "number1" } ] } 状态码: 400 请求错误。具体返回错误码请参考错误码说明 { "error_msg" : "Invalid request parameter, url can not be null or empty when access type is HTTP-FLV.", "error_code" : "VIS.0005" }
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 普通租户的token。 Authorization 否 String 使用AK/SK方式认证时必选,携带的鉴权信息。 X-Sdk-Date 否 String 使用AK/SK方式认证时必选,请求的发生时间。 X-Project-Id 否 String 使用AK/SK方式认证时必选,携带项目ID信息。 表3 请求Body参数 参数 是否必选 参数类型 描述 name 是 String 自定义流名称只能使用英文字母a~z,A-Z)、数字(0~9)以及连接符(-、_),连接符(-、__)不能连续出现、不能单独注册,也不能放在开头和结尾。长度不低于 8,不超过128个字符。 access_type 是 String 视频接入 类型,当前支持HTTP-FLV和RTMP协议,不区分大小写。 encode_type 是 String 视频流编码格式,当前支持H264,不区分大小写。 share_type 否 String 视频流共享类型。 PRIVATE:非共享。 PUBLIC:共享。 不填时默认为PRIVATE,不区分大小写。当值为PRIVATE,用户在拉取视频时会鉴权,拉流时必须在请求头中添加X-Auth-Token,值为创建视频流的用户的Token。拉流地址参考获取视频流地址。 url 否 String 当视频类型为RTMP协议时,不需要该参数。当视频类型为HTTP-FLV协议时,该参数必填,表示HTTP-FLV协议视频流的拉流地址。该地址必须是http或https协议的合法URL,格式要求以“http://”或“https://”开头的字符串,例如“http://xxxx.xxx”。 access_key 否 String 当视频类型为HTTP-FLV时,不需要该参数。视频接入类型是RTMP时,该参数表示密钥access_key,用户可根据自己实际需求选择是否配置。如果配置了密钥access_key,则进行RTMP推流时需要提供认证Token。这里的密钥access_key由创建AK/SK凭证接口生成。配置了密钥access_key后,在推流时,需要在原始推流地址后面加上若干查询参数,作为推流认证信息,具体请参见推流鉴权规则。如果不配置该参数,表示不提供access_key,则推流时不需要进行认证。 description 否 String 视频流的描述信息,可填字符串最大长度为500。 tag 否 Array of StreamTag objects 和视频流关联的标签,一个视频流最多添加10个标签。 表4 StreamTag 参数 是否必选 参数类型 描述 key 否 String 标签的键。最大长度为36个UNICODE字符(一-鿿),可以包含大小写字母、数字、中划线(-)或者下划线(_),不能包含其他的特殊字符。 value 否 String 标签的值。最大长度为43个UNICODE字符(一-鿿),可以包含大小写字母、数字、点(.)、中划线(-)或者下划线(_),不能包含其他的特殊字符,也可以为空字符串。
  • 响应参数 状态码: 201 表5 响应Body参数 参数 参数类型 描述 stream_id String 视频流ID。 name String 视频流的名称。 encode_type String 视频流编码格式。 access_type String 视频接入类型。 access_key String RTMP视频流的密钥。接入类型(access_type)为RTMP时,才有该参数。 url String HTTP-FLV视频流的拉流地址。接入类型(access_type)为HTTP-FLV时,才有该参数。 share_type String 视频流共享类型。 state String 视频流状态。 ACTIVE:表示已激活。 STOPPED:表示已停用。 默认为STOPPED。 created_at Number 视频流创建时间,UTC时间,格式为:YYYY-MM-DDTHH:MM:SSZ。 updated_at Number 视频流更新时间,UTC时间,格式为:YYYY-MM-DDTHH:MM:SSZ。 description String 视频流描述信息。 tag Array of StreamTag objects 和视频流关联的标签。 表6 StreamTag 参数 参数类型 描述 key String 标签的键。最大长度为36个UNICODE字符(一-鿿),可以包含大小写字母、数字、中划线(-)或者下划线(_),不能包含其他的特殊字符。 value String 标签的值。最大长度为43个UNICODE字符(一-鿿),可以包含大小写字母、数字、点(.)、中划线(-)或者下划线(_),不能包含其他的特殊字符,也可以为空字符串。
  • 功能介绍 该接口用于创建视频流。包括RTMP以及HTTP-FLV类型视频流。 创建RTMP视频流时,用户可根据实际需求选择是否配置密钥,如果配置了密钥,则进行RTMP推流时需要提供认证Token。如果不配置该参数,则推流时不需要进行认证。 创建HTTP-FLV视频流时,需要HTTP-FLV视频流的拉流地址,且地址必须是http或https协议的合法URL。 自定义流名称只能使用英文字母a~z,A-Z)、数字(0~9)以及连接符(-、_),连接符(-、__)不能连续出现、不能单独注册,也不能放在开头和结尾。长度不低于 8,不超过128个字符。
  • 响应示例 状态码: 200 正常 { "result" : "success" } 状态码: 400 请求错误。具体返回错误码请参考错误码说明 { "error_msg" : "Invalid request parameter, url can not be null or empty when access type is HTTP-FLV.", "error_code" : "VIS.0005" }
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 普通租户的token。 Authorization 否 String 使用AK/SK方式认证时必选,携带的鉴权信息。 X-Sdk-Date 否 String 使用AK/SK方式认证时必选,请求的发生时间。 X-Project-Id 否 String 使用AK/SK方式认证时必选,携带项目ID信息。 表3 请求Body参数 参数 是否必选 参数类型 描述 access_type 否 String 视频接入类型,例如HTTP-FLV、RTMP等,不区分大小写。当视频流处于ACTIVE状态时,不允许修改该项。 encode_type 否 String 视频流编码格式,当前支持H264,不区分大小写。 access_key 否 String RTMP视频流绑定的密钥Access Key。 url 否 String HTTP-FLV视频流的拉流地址。URL必须是http或https协议的合法URL。格式要求:以“http://”或“https://”开头的字符串,例如“http://xxxx.xxx”。 description 否 String 视频流的描述信息。 share_type 否 String 视频流共享类型。 PRIVATE:非共享。 PUBLIC:共享。 不区分大小写。 tag 否 Array of StreamTag objects 和视频流关联的标签,一个视频流最多添加10个标签。 state 否 String 视频流状态,可选值如下。 ACTIVE:表示已激活。 STOPPED:表示已停用。 表4 StreamTag 参数 是否必选 参数类型 描述 key 否 String 标签的键。最大长度为36个UNICODE字符(一-鿿),可以包含大小写字母、数字、中划线(-)或者下划线(_),不能包含其他的特殊字符。 value 否 String 标签的值。最大长度为43个UNICODE字符(一-鿿),可以包含大小写字母、数字、点(.)、中划线(-)或者下划线(_),不能包含其他的特殊字符,也可以为空字符串。
  • 调用API获取项目ID 项目ID还用通过调用查询指定条件下的项目信息API获取。 获取项目ID的接口为“GET https://{Endpoint}/v3/projects”,其中{Endpoint}为 IAM 的终端节点,可以从地区和终端节点获取。接口的认证鉴权请参见认证鉴权。 响应示例如下,例如VIS部署的区域为"cn-north-4",相应消息体中查找“name”为"cn-north-4",其中projects下的“id”即为项目ID。 { "projects": [ { "domain_id": "65382450e8f64ac0870cd180d14e684b", "is_domain": false, "parent_id": "65382450e8f64ac0870cd180d14e684b", "name": "cn-north-4", "description": "", "links": { "next": null, "previous": null, "self": "https://www.example.com/v3/projects/a4a5d4098fb4474fa22cd05f897d6b99" }, "id": "a4a5d4098fb4474fa22cd05f897d6b99", "enabled": true } ], "links": { "next": null, "previous": null, "self": "https://www.example.com/v3/projects" } }
  • 从控制台获取项目ID 登录管理控制台。 鼠标移动到右上角的用户名上,在下拉列表中选择“我的凭证”。 在“我的凭证”页面,可以查看用户名、账号名,在项目列表中查看项目ID。 图1 查看账号ID/项目ID 单击“管理访问密钥”,可以查看已添加的访问密钥ID(Access Key ID,AK)。 如果没有AK/SK,可单击“新增访问密钥”来添加。 如果已生成过AK/SK,找到原来已下载的AK/SK文件,文件名一般为:credentials.csv。
  • 响应消息体 响应消息体通常以结构化格式返回,与响应消息头中Content-type对应,传递除响应消息头之外的内容。 对于获取用户Token接口,返回如下消息体。为篇幅起见,这里只展示部分内容。 { "token": { "expires_at": "2019-02-13T06:52:13.855000Z", "methods": [ "password" ], "catalog": [ { "endpoints": [ { "region_id": "cn-north-4", ...... 当接口调用出错时,会返回错误码及错误信息说明,错误响应的Body体格式如下所示。 { "error_msg": "The format of message is error", "error_code": "AS.0001" } 其中,error_code表示错误码,error_msg表示错误描述信息,具体请参见错误码。
  • 响应消息头 对应请求消息头,响应同样也有消息头,如“Content-type”。 表1 公共响应消息头 消息头名称 说明 是否必选 Content-Type 用于指明发送给接收者的实体正文的媒体类型。 类型:字符串。 默认值:application/json; charset=UTF-8 是 X-request-id 此字段携带请求ID号,以便任务跟踪。 类型:字符串。request_id-timestamp-hostname(request_id在服务器端生成UUID, timestamp为当前时间戳,hostname为处理当前接口的服务器名称)。 默认值:无。 否 X-ratelimit 此字段携带总计流控请求数。 类型:整型。 默认值:无。 否 X-ratelimit-used 此字段携带剩下请求数。 类型:整型。 默认值:无。 否 X-ratelimit-window 此字段携带流控单位。 类型:字符串。单位按照分钟、小时、天。 默认值:小时。 否 对于获取用户Token接口,返回如图 获取用户Token相应消息头所示。 其中“x-subject-token”就是需要获取的用户Token。有了Token之后,您就可以使用Token认证调用其他API。 图1 获取用户Token响应消息头
  • 响应示例 状态码: 201 正常 { "user_id" : "******6045184a8194e021113e******", "sip_ip" : "10.95.144.***", "sip_port" : "5080", "quota" : { "consecutive_access_time" : { "total" : 120, "used" : 0 }, "password" : { "total" : 10, "used" : 0 }, "random_access_time" : { "total" : 240, "used" : 0 }, "stream" : { "total" : 50, "used" : 0 }, "active_stream" : { "total" : 10, "used" : 0 }, "device" : { "total" : 50, "used" : 0 }, "aksk" : { "total" : 10, "used" : 0 }, "http_num" : { "total" : 10, "used" : 0 }, "http_active_num" : { "total" : 5, "used" : 0 }, "rtmp_num" : { "total" : 0, "used" : 0 } }, "created_at" : "2018-10-25T03:06:10Z", "is_subscribed" : true } 状态码: 400 请求错误。具体返回错误码请参考错误码说明。 { "error_msg" : "You have already subscribed to VIS.", "error_code" : "VIS.0018" }
  • 响应参数 状态码: 201 表3 响应Body参数 参数 参数类型 描述 user_id String 用户ID。 sip_ip String SIP服务器地址,VIS对外提供的设备注册地址。 sip_port String SIP服务器端口,VIS对外提供的设备注册端口,固定为5080。 quota quotaInfo object 开通服务返回的quota体。 created_at String 创建时间,格式为:YYYY-MM-DDTHH:MM:SSZ(UTC时间)。 is_subscribed Boolean 用户是否开通服务。 true:表示开通。 false:表示未开通。 表4 quotaInfo 参数 参数类型 描述 password PassWordInfo object GB/T28181凭证配额信息。 consecutive_access_time Consecutive_Access_TimeInfo object GB/T28181设备连续接入时长的配额信息。 random_access_time Random_Access_TimeInfo object GB/T28181设备随机接入时长的配额信息。 stream StreamInfo object 视频流配额信息。 active_stream Active_StreamInfo object 激活视频流配额信息。 device DeviceInfo object 设备配额信息。 aksk AKSKInfo object AKSK凭证配额信息。 http_num HttpInfo object http_flv配额信息。 http_active_num HttpActiveInfo object http_flv激活配额信息。 rtmp_num RtmpInfo object rtmp配额信息。 表5 PassWordInfo 参数 参数类型 描述 total Integer GB/T28181凭证总配额量。 used Integer GB/T28181凭证已创建量。 表6 Consecutive_Access_TimeInfo 参数 参数类型 描述 total Integer 设备连续接入的总时长。 used Integer 设备已使用的时长。 表7 Random_Access_TimeInfo 参数 参数类型 描述 total Integer GB/T28181设备随机接入的总时长。 used Integer GB/T28181设备随机已接入的时长。 表8 StreamInfo 参数 参数类型 描述 total Integer 视频流总配额量。 used Integer 视频流已创建量。 表9 Active_StreamInfo 参数 参数类型 描述 total Integer 可激活视频流总配额量。 used Integer 视频流已激活量。 表10 DeviceInfo 参数 参数类型 描述 total Integer 设备总配额量。 used Integer 设备已创建量。 表11 AKSKInfo 参数 参数类型 描述 total Integer AKSK凭证总配额量。 used Integer AKSK凭证已创建量。 表12 HttpInfo 参数 参数类型 描述 total Integer http_flv总配额数量。 used Integer http_flv已创建数量。 表13 HttpActiveInfo 参数 参数类型 描述 total Integer http_flv激活总配额数量。 used Integer http_flv已激活数量。 表14 RtmpInfo 参数 参数类型 描述 total Integer rtmp总配额数量。 used Integer rtmp已创建数量。
共100000条