华为云用户手册

  • 根据业务类型设置缓存过期时间 CDN默认缓存过期时间: 业务类型选择的是网站加速、文件下载加速或点播加速,且源站类型为源站IP或源站 域名 的加速域名,会有两条默认缓存规则。 常规动态文件(如: .php .jsp .asp .aspx)默认缓存过期时间为0,对此类动态文件请求会直接回源,此默认规则允许修改和删除。 除常规动态文件外的其他“所有文件”默认缓存过期时间30天,允许修改,不允许删除。 如果您在添加域名里源站类型选择的是“OBS桶”,会有一条默认缓存规则。 默认有“所有文件”默认缓存过期时间30天,允许修改,不允许删除。 所有文件默认缓存30天,此规则允许修改但不允许删除。您可以将自定义缓存规则设置为更高优先级(数值更大),该自定义规则将会被优先匹配。 业务类型为全站加速时,默认有“所有文件”、缓存过期时间为“0”的缓存规则,允许修改和删除。 您可以根据业务类型配置缓存过期时间: 网站加速类型,建议设置缓存过期时间: 对php、aspx、asp、 jsp、 do、 dwr、cgi、 fcgi、action、ashx、axd、json等动态文件不缓存。 对以shtml、html、htm、js结尾的文件,建议缓存7天。 其他静态文件建议缓存30天。 下载加速类型,建议设置缓存过期时间: 对php、aspx、asp、jsp、do等动态文件不缓存。 对7z、apk、 wdf、 cab、 dhp、exe、flv、gz、ipa、iso、mpk、MPQ、pbcv、pxl、qnp、r00、rar、xy、xy2、zip、CAB等文件缓存30天。 视频点播加速 类型,建议设置缓存过期时间: 对php、aspx、asp、jsp、do等动态文件不缓存。 对mwv、html、htm、shtml、hml、gif、swf、png、bmp、js等缓存7天。 对MP3、wma、7z、apk、 wdf、 cab、 dhp、exe、flv、gz、ipa、iso、mpk、MPQ、pbcv、pxl、qnp、r00、rar、xy、xy2、zip、CAB等文件缓存30天。
  • 如何为集群开放命名空间注入? 为集群的命名空间注入sidecar时,若集群未开放命名空间注入,请参考如下指导修改集群配置: 通过kubectl连接集群。 执行kubectl get iop -nistio-system,查询iop资源。 若回显如下,表示存在iop资源,请执行3。 若回显如下,表示不存在iop资源,请执行4。 执行kubectl edit iop -nistio-system data-plane,修改autoInject配置项。其中,data-plane为上一步查询的iop资源名称,请替换为实际值。 global: defaultPodDisruptionBudget: enabled: true hub: *.*.*.*:20202/asm logging: level: default:info meshID: test-payment multiCluster: clusterName: test-yy network: test-yy-network proxy: autoInject: enabled remotePilotAddress: *.*.*.* tag: 1.8.6-r1-20220512225026 执行kubectl edit cm -nistio-system istio-sidecar-injector,修改istio-sidecar-injector配置项。 data: config: |- policy: enabled 父主题: 网格管理
  • 集群类型对比 CCE支持多种类型的集群创建,以满足您各种业务需求,如下为集群类型之间的区别,可帮助您选择合适的集群: 维度 子维度 CCE Standard CCE Autopilot 产品定位 - 标准版本集群,提供高可靠、安全的商业级容器集群服务。 无用户节点的Serverless版集群,无需对节点的部署、管理和安全性进行维护,并根据CPU和内存资源用量按需付费。 使用场景 - 面向有云原生数字化转型诉求的用户,期望通过容器集群管理应用,获得灵活弹性的算力资源,简化对计算、网络、存储的资源管理复杂度。 适合具有明显的波峰波谷特征的业务负载,例如在线教育、电子商务等行业。 规格差异 网络模型 云原生网络1.0:面向性能和规模要求不高的场景。 容器隧道网络模式 VPC网络模式 云原生网络2.0:面向大规模和高性能的场景。 网络性能 VPC网络叠加容器网络,性能有一定损耗 VPC网络和容器网络融合,性能无损耗 容器网络隔离 容器隧道网络模式:集群内部网络隔离策略,支持NetworkPolicy。 VPC网络模式:不支持 Pod可直接关联安全组,基于安全组的隔离策略,支持集群内外部统一的安全隔离。 安全隔离性 普通容器:Cgroups隔离 提供虚机级别的隔离 边缘基础设施管理 不支持 不支持
  • Step1 创建算法工程 在JupyterLab的Terminal中,在work目录下执行ma-cli createproject命令创建工程,根据提示输入工程名称,例如:water_meter。然后按回车键选择默认参数(连续按五次回车),并选择跳过资产安装步骤(选择6)。 图2 创建工程 执行以下命令进入工程目录。 cd water_meter 执行以下命令复制项目数据到Notebook中。 python manage.py copy --source {obs_dataset_path} --dest ./data/raw/water_meter_crop python manage.py copy --source {obs_dataset_path} --dest ./data/raw/water_meter_segmentation {obs_dataset_path}路径为Step1 准备数据中下载到OBS中的数据集路径,比如“obs://{OBS桶名称}/water_meter_segmentation”和“obs://{OBS桶名称}/water_meter_crop” 图3 复制数据集到Notebook中
  • Step3 水表读数识别 执行如下命令安装mmocr套件。 python manage.py install algorithm mmocr==0.2.1 安装mmocr套件后,“./algorithms/mmocr/config/textrecog”文件夹中包括config.py(算法外壳配置)和robustscanner_r31_academic.py(模型结构),需要根据所需算法和数据集路径修改配置文件。以下以robust_scanner算法为例。 图15 进入textrecog文件夹 修改“robustscanner_r31_academic.py”,如下所示: ... train_prefix = 'data/raw/water_meter_crop/' # 修改数据集路径改为水表ocr识别数据集路径 train_img_prefix1 = train_prefix + 'train' train_ann_file1 = train_prefix + 'train.txt' ... test_prefix = 'data/raw/water_meter_crop/' test_img_prefix1 = test_prefix + 'val/' test_ann_file1 = test_prefix + 'val.txt' 执行如下命令安装robust_scanner预训练模型。 python manage.py install model mmocr:textrecog/robust_scanner/robustscanner_r31_academic 图16 安装robust_scanner模型 训练OCR模型。 初次使用mmcv时需要编译mmcv-full,该过程较慢,可以直接使用官方预编译的依赖包。 预编译包URL: https://download.openmmlab.com/mmcv/dist/cu102/torch1.6.0/index.html pip uninstall mmcv -y pip install https://download.openmmlab.com/mmcv/dist/cu102/torch1.6.0/mmcv_full-1.3.9-cp37-cp37m-manylinux1_x86_64.whl pip install rapidfuzz==2.15.1 pip install numpy -U 修改“./algorithms/mmocr/config/textrecog/config.py”,将EPOCHS(迭代数量)改为2。 图17 修改textrecog文件夹下的config.py文件 图18 迭代数量修改为2 执行如下命令训练OCR模型。(仅使用GPU进行训练,大概需要几分钟) python manage.py run --cfg algorithms/mmocr/config/textrecog/config.py 图19 OCR模型训练结果 训练好的模型会保存在指定位置中,默认为output/robustscanner_r31_academic/文件夹中。 验证模型效果。 模型训练完成后,可以在验证集上计算模型的指标,首先修改配置文件的模型位置。 修改“./algorithms/mmocr/config/textrecog/config.py” #config.py ... model_path = './output/robustscanner_r31_academic/latest.pth' ... 执行如下命令验证模型。 python manage.py run --cfg algorithms/mmocr/config/textrecog/config.py --pipeline evaluate 图20 计算模型的指标 可选:模型推理。 模型推理能够指定某一张图片,并且推理出图片的分割区域,并进行可视化。首先需要指定待推理的图片路径,修改“./algorithms/mmocr/config/textrecog/config.py”,具体如下。 ... infer_img_file='./data/raw/water_meter_crop/val/train_10.jpg' # 指定需要推理的图片路径 ... 执行如下命令推理。 python manage.py run --cfg algorithms/mmocr/config/textrecog/config.py --pipeline infer 图21 模型推理结果 推理输出的图片路径在“output/robustscanner_r31_academic/vis”文件夹下。 图22 表盘读数识别结果图 执行如下命令导出算法SDK。 python manage.py export --cfg algorithms/mmocr/config/textrecog/config.py
  • Step2 使用deeplabv3完成水表区域分割任务 执行如下命令安装ivgSegmentation套件。 python manage.py install algorithm ivgSegmentation==1.0.2 图4 ivgSegmentation套件安装成功 如果提示ivgSegmentation版本不正确,可以通过命令python manage.py list algorithm查询版本。 安装ivgSegmentation套件后,在JupyterLab界面左侧的工程目录中进入“./algorithms/ivgSegmentation/config/sample”文件夹中查看目前支持的分割模型,以sample为例(sample默认的算法就是deeplabv3),文件夹中包括config.py(算法外壳配置)和deeplabv3_resnet50_standard-sample_512x1024.py(模型结构)。 图5 进入sample文件夹 表盘分割只需要区分背景和读数区域,因此属于二分类,需要根据项目所需数据集对配置文件进行修改,如下所示: 修改“config.py”文件。 图6 修改sample文件夹下的config.py文件 # config.py ... alg_cfg = dict( ... data_root='data/raw/water_meter_segmentation', # 修改为真实路径本地分割数据集路径 ... ) 修改完后按Ctrl+S保存。 修改“deeplabv3_resnet50_standard-sample_512x1024.py”文件。 图7 修改deeplabv3_resnet50_standard-sample_512x1024.py文件 # deeplabv3_resnet50_standard-sample_512x1024.py gpus=[0] ... data_cfg = dict( ... num_classes=2, # 修改为2类 ... ... train_scale=(512, 512), # (h, w)#size全部修改为(512, 512) ... train_crop_size=(512, 512), # (h, w) ... test_scale=(512, 512), # (h, w) ... infer_scale=(512, 512), # (h, w) ) 修改完按Ctrl+S保存。 在water_meter工程目录下,执行如下命令安装deeplabv3预训练模型。 python manage.py install model ivgSegmentation:deeplab/deeplabv3_resnet50_cityscapes_512x1024 图8 安装deeplabv3预训练模型 执行如下命令训练分割模型。(推荐使用GPU进行训练) python manage.py run --cfg algorithms/ivgSegmentation/config/sample/config.py --gpus 0 图9 分割模型训练结果 训练好的模型会保存在指定位置中,默认为“./output/deeplabv3_resnet50_standard-sample_512x1024/checkpoints/”中。 验证模型效果。 模型训练完成后,可以在验证集上计算模型的指标,首先修改配置文件的模型位置。 修改“config.py”文件,修改完按Ctrl+S保存。 # config.py ... alg_cfg = dict( ... load_from='./output/deeplabv3_resnet50_standard-sample_512x1024/checkpoints/checkpoint_best.pth.tar', # 修改训练模型的路径 ... ) 执行如下命令计算模型指标。 python manage.py run --cfg algorithms/ivgSegmentation/config/sample/config.py --pipeline evaluate 图10 模型指标计算结果 模型推理。 模型推理能够指定某一张图片,并且推理出图片的分割区域,并进行可视化,首先需要指定需要推理的图片路径。 修改“config.py”文件,修改完按Ctrl+S保存。 alg_cfg = dict( ... img_file='./data/raw/water_meter_segmentation/image/train_10.jpg' # 指定需要推理的图片路径 ... ) 执行如下命令推理模型。 python manage.py run --cfg algorithms/ivgSegmentation/config/sample/config.py --pipeline infer 图11 表盘分割模型推理结果 推理输出的图片路径在“./output/deeplabv3_resnet50_standard-sample_512x1024”下。 图12 水表表盘分割结果可视化 执行如下命令导出算法SDK。 python manage.py export --cfg algorithms/ivgSegmentation/config/sample/config.py --is_deploy 算法开发套件支持将模型导出成一个模型SDK,方便进行模型部署等下游任务。SDK导出的路径为“./export/deeplabv3_resnet50_standard-sample_512x1024/Linux_x86_64_GPU_PyTorch_Common_py” 图13 SDK导出路径 图14 SDK导出示意图
  • 准备数据 登录OBS控制台,创建OBS对象桶,区域选择“华北-北京四”。 登录ModelArts控制台,选择控制台区域为“华北-北京四”。 在“全局配置”页面查看是否已经配置授权,允许ModelArts访问OBS。如果没有配置授权,请参考配置访问授权(全局配置)添加授权。 分别下载本案例的数据集,水表表盘分割数据集和水表表盘读数OCR识别数据集到OBS桶中,单击数据集右侧的“下载”,弹出“选择云服务区域”,选择区域后单击“确定”进入下载详情页面。下载方式选择“ 对象存储服务 (OBS)”,填写OBS路径信息等,详细步骤请参考下载数据集。 OBS路径示例如下: obs://{OBS桶名称}/water_meter_segmentation 水表表盘分割数据集 obs://{OBS桶名称}/water_meter_crop 水表表盘读数OCR识别数据集 从AI Gallery下载数据集免费,但是数据集存储在OBS桶中会收取少量费用,具体计费请参见OBS价格详情页,案例使用完成后请及时清除资源和数据。
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 Access-Token 是 String 用户认证AccessToken:从获取用户北向接口认证AccessToken中获取 表3 请求Body参数 参数 是否必选 参数类型 描述 group_name 是 String 目标库分组名称:最大为63位 device_id 是 String 设备ID: 好望设备:大小写字母、数字组成,长度范围[8,32],可在设备外壳或者设备web页面上获取 group_type 否 String 目标库分组类型:枚举类型,不同设备支持的枚举类型不一样 NVR800设备下的目标库分组类型:不填默认为白名单 枚举值: WHITE 白名单 STRANGE 陌生人 BLACK 黑名单 SDC设备下的目标库分组类型:不填默认为其他名单 枚举值: OTHER 其他名单 DEFAULT 默认名单 WHITE 白名单 IVS1800设备下的目标库分组类型:不填默认为白名单 枚举值: WHITE 白名单 STRANGE 陌生人 RED 红名单
  • 响应示例 状态码: 200 查询设备的录像列表(国标)响应 { "total" :0, "records" : [ { "record_name" : "录像1", "record_type" : "NORMAL_RECORD", "start_time" : "2020-06-12 17:31:00", "end_time" : "2020-06-16 17:31:00" } ] }
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 total Integer 录像文件总数量 records Array of ListDeviceRecordFilesResp objects 录像列表 表5 ListDeviceRecordFilesResp 参数 参数类型 描述 record_name String 录像文件名称:长度范围[1,32] record_type String 录像类型:枚举类型 枚举值: NORMAL_RECORD 全量: 录像计划产生的录像 MOTION_RECORD 动检: 移动侦测产生的录像 AL RAM _RECORD 告警: 智能分析,目标分析等告警输入产生的录像 start_time String 录像开始时间:格式:yyyy-MM-dd HH:mm:ss end_time String 录像结束时间:格式:yyyy-MM-dd HH:mm:ss
  • URI GET /v1/{user_id}/devices/{device_id}/channels/{channel_id}/device-records 表1 路径参数 参数 是否必选 参数类型 描述 user_id 是 String 用户ID:由数字组成,长度范围[15,25],获取方式参考获取user ID与下载AK/SK章节 device_id 是 String 设备ID: 好望设备:大小写字母、数字组成,长度范围[8,32],可在设备外壳或者设备web页面上获取 国标设备:由数字组成,长度固定为20个字符长度,由客户自行设置,其中第11-13位,必须是以下之一132(IPC)、111(DVR)、118(NVR),用来区分设备类型 channel_id 是 String 通道ID: 好望设备:取值范围[0,999] 国标设备:由数字组成,长度为20个字符,由客户自行在设备侧设置,可以在web界面获取 表2 Query参数 参数 是否必选 参数类型 描述 start_time 是 String 开始时间:格式如:yyyy-MM-dd HHmmss end_time 是 String 结束时间:格式如:yyyy-MM-dd HHmmss limit 否 String 单页数量:取值范围[1,1000],不填写时默认值为 10 offset 否 String 偏移量:offset为0时表示查询第一页的数据,取值范围[0,1000000],不填写时默认值为 0
  • 消息结构体介绍 表1 message_type为device_unbind时,data结构体如下: 字段名 类型 说明 message_type(Json内层) String 消息类型 枚举值: DELETE_DEVICE 设备删除 UNBIND_DEVICE 设备解绑 UNBIND_MANAGE 接入调阅解绑 UNBIND_MOTION 动检 云存储 解绑 UNBIND_NORMAL 连续云存储解绑 UNBIND_DATAFLOW 行业数据流解绑 devices Array of Device Objects 设备对象,包含一或多个设备的对象 表2 Device 字段名 类型 说明 device_id String 设备ID channel_id String 通道ID message Message Object 套餐解绑时的详细信息 表3 Message 字段名 类型 说明 resource_id String 套餐ID 示例一、删除设备 { "message_id": 1676624636867660931, "message_type": "device_unbind", "data": { "message_type": "DELETE_DEVICE", "devices": [ { "device_id": "11111111111111111111", "channel_id": "", "message": null } ] }, "test": false } 示例二、解绑套餐 { "message_id": 1676624334098133709, "message_type": "device_unbind", "data": { "message_type": "UNBIND_MANAGE", "devices": [ { "device_id": "210123456SMY***", "channel_id": "0", "message": { "resource_id": "791afbac769f4edea98fea92bc5fcc7d" } } ] }, "test": false }
  • URI GET /v1/{user_id}/devices/{device_id}/channels/{channel_id}/cruise-track/list 表1 路径参数 参数 是否必选 参数类型 描述 channel_id 是 String 通道ID校验:目前只支持好望设备,取值范围[-1,999] device_id 是 String 设备ID: 好望设备:大小写字母、数字组成,长度范围[8,32],可在设备外壳或者设备web页面上获取 user_id 是 String 用户ID:由数字组成,长度范围[15,25],获取方式参考获取user ID与下载AK/SK
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 device_id String 设备ID channel_id String 通道ID cruises_ids Array of GetCruiseTracksItem objects 巡航轨迹ID列表 表4 GetCruiseTracksItem 参数 参数类型 描述 cruises_id Integer 巡航轨迹ID cruises_name String 巡航轨迹名称 enable_cruise String 启停状态,枚举值: OPEN:开启 CLOSE:关闭
  • 响应示例 状态码: 200 OK { "total" : 2, "devices" : [ { "device_id" : "952352DJNR***", "device_name" : "测试设备", "device_state" : "ONLINE", "device_system_state" : "NORMAL", "device_type" : "IPC", "manufacture" : "jovision", "device_ability" : "ptz,talk", "device_cloud_ability": { "alarm_voice": { "support": "true" }}, "access_protocol" : "HOLO", "channel_total" : 1, "channel_online_total" : 1, "channel_offline_total" : 0, "sdk_ability" : "***", "org_list" : { "device_org_id" : "1234567890***", "device_org_name" : "测试设备组织**", "device_org_level" : "1" }, "create_time" : "2020-06-26 20:42:16", "update_time" : "2020-06-26 20:42:16" }, { "device_id" : "952352LWXT***", "device_name" : "测试设备1", "device_state" : "ONLINE", "device_system_state" : "NORMAL", "device_type" : "IPC", "manufacture" : "jovision", "device_ability" : "ptz,talk", "device_cloud_ability": { "alarm_voice": { "support": "true" }}, "access_protocol" : "HOLO", "channel_total" : 1, "channel_online_total" : 1, "channel_offline_total" : 0, "sdk_ability" : "***", "org_list" : { "device_org_id" : "1234567890***", "device_org_name" : "测试设备组织**", "device_org_level" : "1" }, "create_time" : "2020-06-26 20:42:16", "update_time" : "2020-06-26 20:42:16" } ] }
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 devices Array of DeviceInfoMuti objects 设备列表 total Integer 查询条数 表5 DeviceInfoMuti 参数 参数类型 描述 device_id String 设备ID,设备唯一标识符 device_name String 设备名称 device_state String 设备状态 枚举值: OFFLINE 离线 ONLINE 在线 UNREGISTERED 未注册 device_type String 设备类型 枚举值: IPC 通用相机 NVR NVR设备 MEdge IVS1800设备 IPC-BULLET 枪机 IPC-BOX 筒机 IPC-CONCH 半球/海螺 IPDOME 球机 device_system_state String 设备系统冻结 枚举值: NORMAL 正常 UNAVAILABLE_FROZEN 冻结 create_time String 创建时间 update_time String 更新时间,在设备重新上线后或者移动设备分组后会修改时间 access_protocol Integer 接入协议类型 manufacture String 生产厂家 device_ability String 设备能力集:枚举类型,参考附录设备能力集,多个能力集用英文逗号分隔 device_cloud_ability Object 云端能力集规格 channel_total Integer 通道总数 channel_online_total Integer 通道在线总数 channel_offline_total Integer 通道离线总数 org_list Array of 表6 DeviceOrgInfo objects 设备组结果 sdk_ability String sdk能力集 表6 DeviceOrgInfo 参数 参数类型 描述 device_org_id String 设备组织ID device_org_name String 设备组织名称 device_org_level Integer 设备组织层级
  • URI GET /v1/{user_id}/devices 表1 路径参数 参数 是否必选 参数类型 描述 user_id 是 String 用户ID:由数字组成,长度范围[15,25],获取方式参考获取user ID与下载AK/SK章节 表2 Query参数 参数 是否必选 参数类型 描述 access_protocol 否 String 接入协议:枚举类型,多个使用英文逗号分隔 枚举值: HOLO 好望协议 GB28181 国标协议 device_name 否 String 模糊查询字段:支持设备名称模糊匹配,由字符组成,支持数字、中文(一个汉字算两个字符)、英文、-、_、空格,长度范围[0,128] device_state 否 String 设备状态:枚举类型,多个查询使用英文逗号分隔 枚举值: OFFLINE 离线 ONLINE 在线 UNREGISTERED 未注册 device_system_state 否 String 设备系统状态:枚举类型,多个查询使用英文逗号分隔 枚举值: NORMAL 正常 UNAVAILABLE_FROZEN 冻结 device_type 否 String 设备类型:枚举类型,多个查询使用英文逗号分隔 枚举值: IPC 直连摄像机 NVR NVR设备 MEdge IVS1800设备 ability 否 Array of strings 查询的能力集列表:不传默认查询所有能力集,数组长度范围[0,10]。能力集对应能力参考设备能力集。 need_cloud_ability 否 Boolean 是否需要返回云上管理的能力集:false,不返回云上能力集信息;true,返回云上能力集信息。不填默认false need_specification 否 Boolean 是否需要能力规格:false,不返回能力规格;true,返回能力规格。不填默认false direction 否 String 排序方向:枚举类型,默认降序,不区分大小写 枚举值: ASC 升序 DESC 降序 limit 否 Integer 限制条数:取值范围[0,1000],不填写时默认值为10 offset 否 Integer 偏移量页数:0为第一页,取值范围[0,2147483646],不填写时默认为0,同时offset*limit需小于2147483646 sort_by 否 String 排序字段:枚举类型,默认按创建时间create_time排序 枚举值: create_time 创建时间 update_time 更新时间
  • 请求示例 查询通道实况播放地址 POST /v1/123456789*****/media/urls/batch-delete { "urls":[ { "url":"jvmp://123.123.123.123:7070/live/210123456SMY***?token=content***" }, { "url":"https://123.123.123.123:20378/live/210123456SMY***.flv?token=content***" } ] }
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 Access-Token 是 String 用户认证AccessToken:从获取用户北向接口认证AccessToken中获取 表3 请求Body参数 参数 是否必选 参数类型 描述 urls 是 Array of BatchDeleteUrls objects 要删除的url列表:播放地址列表 表4 BatchDeleteUrls 参数 是否必选 参数类型 描述 url 是 String 要删除的url:从其他接口获取的播放地址 备注:不支持RTSP协议
  • 请求示例 添加摄像机巡航轨迹 POST /v1/2562572829***/devices/952352LWXT***/channels/1/cruise-track { "cruise_type" : "CRUISE_TRACK", "cruise_name" : "巡航轨迹名称", "cruise_points" : [ { "preset_index" : 1, "dwell_time" : 30, "speed_level" : 2 } ] }
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 Access-Token 是 String 用户认证AccessToken:从获取用户北向接口认证AccessToken中获取 表3 请求Body参数 参数 是否必选 参数类型 描述 cruise_type 是 String 巡航轨迹类型:枚举类型 枚举值: CRUISE_TRACK 巡航轨迹 MODEL_TRACK 模式轨迹 PAN_TRACK 水平轨迹 TILT_TRACK 垂直轨迹 说明: 目前设备只有CRUISE_TRACK模式——基于预置点的巡航,当选择其他模式时,设备还是按照CRUISE_TRACK模式在实现,因此为避免混淆,建议传参为CRUISE_TRACK。 cruise_name 是 String 巡航轨迹名称:数字、中文、英文、空格、-、_,.,长度范围[1,128] cruise_points 是 Array of CruisePoint objects 预置位列表,不允许为空,来源于查询摄像机预置位列表 表4 CruisePoint 参数 是否必选 参数类型 描述 preset_index 是 Integer 预置点位序号:取值范围[1,512] dwell_time 是 Integer 预置位停留时间:取值范围[30,3600] speed_level 是 Integer 移动速度:取值范围[0,10],0最慢,10最快
  • URI POST /v1/{user_id}/devices/{device_id}/channels/{channel_id}/cruise-track 表1 路径参数 参数 是否必选 参数类型 描述 channel_id 是 String 通道ID校验:目前只支持好望设备,取值范围[-1,999] device_id 是 String 设备ID: 好望设备:大小写字母、数字组成,长度范围[8,32],可在设备外壳或者设备web页面上获取 user_id 是 String 用户ID:由数字组成,长度范围[15,25],获取方式参考获取user ID与下载AK/SK
  • 请求示例 获取实况地址请求: POST /v2/123456789*****/devices/channels/media/live-connections { "expire_time":30, "use_times":0, "channels": [ { "channel_id": "0", "device_id": "219123456CYP***", "live_protocol":"HOLO", "stream_type": "SECONDARY_STREAM_1" }, { "channel_id": "1", "device_id": "219123456CYP***", "live_protocol":"HOLO", "stream_type": "PRIMARY_STREAM" } ] }
  • 响应示例 状态码: 200 OK { "fail_num": 1, "live_connections": [ { "device_id": "219123456CYP***", "channel_id": "0", "cloud_trans_connections": {}, "p2p_connections": {}, "result": { "code": "IVM.10026004", "msg": "The param stream_type is not support." } }, { "device_id": "210123456SMY***", "channel_id": "0", "cloud_trans_connections": { "live_url": "jvmp://123.123.123.123:7070/live/210123456SMY***?token=content***" }, "p2p_connections": { "token": "content***", "device_state": "ONLINE", "p2p_nodes": [ { "node_type": "COMMON", "address_type": "IPV4", "address": [ "123.123.123.123" ], "tcp_port": 0, "udp_port": 7050 } ] }, "result": { "code": "IVM.0", "msg": "Success" } } ] }
  • 响应参数 状态码: 200 表5 响应Body参数:播放P2P实况需要将响应Body参数中的所有内容输入到播放地址栏 参数 参数类型 描述 fail_num Integer 获取设备url失败的数量 live_connections Array of LiveConnectionResp objects 实况响应信息 表6 LiveConnectionResp 参数 参数类型 描述 device_id String 设备ID:设备唯一标识,长度范围[1,32] channel_id String 通道ID:长度范围[1,20] cloud_trans_connections CloudTransChannelsResp object 转发实况连接结构体 p2p_connections P2PChannelsResp object P2P实况连接结构体:仅支持HOLO媒体播放协议且请求设备为好望设备 result Result object 错误信息 表7 CloudTransChannelsResp 参数 参数类型 描述 live_url String 转发实况播放地址:将此url输入播放地址栏开始播放 表8 P2PChannelsResp 参数 参数类型 描述 token String P2P请求Token device_state String 在线状态:枚举类型 枚举值: OFFLINE 离线 ONLINE 在线 p2p_nodes Array of P2PMTSListResp objects P2P连接可用节点 表9 P2PMTSListResp 参数 参数类型 描述 node_type String 节点类型:枚举类型 枚举值: COMMON 普通:普通的三线(移动,联通,电线)服务器,与地域有关,服务器由运营商托管,网络通信质量低 BETTER 优质:全网通服务器(华为云服务器等),网络通信质量高 address_type String 地址类型:枚举类型 DOMAIN 域地址 IPV4 IPv4地址 IPV6 IPv6地址 address Array of strings 媒体转发服务地址: 协议头在SDK封装 ,根据address_type决定地址类型 DOMAIN: www.huawei.com IPV4: 123.123.123.123 IPV6: fe80::f816:3eff:feed:5821 tcp_port Integer TCP端口:默认值为 0 备注:未使用0端口,tcp_port只作为兼容字段保留 udp_port Integer UDP端口:默认值为 7050 表10 Result 参数 参数类型 描述 code String 错误编码:请参见错误码 msg String 错误信息
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 Access-Token 是 String 用户认证AccessToken:从获取用户北向接口认证AccessToken中获取 表3 请求Body参数 参数 是否必选 参数类型 描述 channels 是 Array of ChannelsLiveParamV2 objects 请求信息V2 expire_time 否 Integer 自定义Url过期时间:时间范围[30, 86400],不传默认为 30(单位/秒) 备注:仅对CloudTransChannelsResp中的live_url有效 use_times 否 Integer 自定义Url使用次数:枚举类型,不填写时默认值为 0,RTSP协议固定为 0 备注:仅对CloudTransChannelsResp中的live_url有效 枚举值: 0 使用一次 1 有效时间内任意使用,此参数对RTSP协议无效 表4 ChannelsLiveParamV2 参数 是否必选 参数类型 描述 device_id 是 String 设备ID: 好望设备:大小写字母、数字组成,长度范围[8,32],可在设备外壳或者设备web页面上获取 国标设备:由数字组成,长度固定为20个字符长度,由客户自行设置,其中第11-13位,必须是以下之一132(IPC)、111(DVR)、118(NVR),用来区分设备类型 channel_id 是 String 通道ID: 好望设备:取值范围[0,999] 国标设备:由数字组成,长度为20个字符,由客户自行在设备侧设置,可以在web界面获取 live_protocol 是 String 媒体播放协议:枚举类型,选择获取地址的媒体播放协议类型 枚举值: HOLO 好望协议 HTTP_HLS 基于HTTP的HLS流媒体传输协议 HTTPS_HLS 基于HTTPS的HLS流媒体传输协议 HTTP_FLV 基于HTTP的FLV媒体协议 HTTPS_FLV 基于HTTPS的FLV媒体协议 RTSP RTSP流媒体传输协议 stream_type 是 String 码流类型:枚举类型 枚举值: PRIMARY_STREAM 主码流 SECONDARY_STREAM_1 子码流1 SECONDARY_STREAM_2 子码流2
  • 响应示例 状态码: 200 OK { "failed_num" : 1, "results" : [ { "device_id" : "952352DJNR***", "result" : { "code" : "IVM.0", "msg" : "Success" } }, { "device_id" : "952352LWXT***", "result" : { "code" : "IVM.10022037", "msg" : "Move device is not exist" } } ] }
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 Access-Token 是 String 用户认证AccessToken:从获取用户北向接口认证AccessToken中获取 表3 请求Body参数 参数 是否必选 参数类型 描述 device_ids 是 Array of strings 要移动设备ID集合:数组长度范围[1,100] 单个设备: 好望设备:大小写字母、数字组成,长度范围[8,32],可在设备外壳或者设备web页面上获取 国标设备:由数字组成,长度为20个字符长度,由客户自行设置,其中第11-13位,必须是以下之一132(IPC)、111(DVR)、118(NVR),用来区分设备类型
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 failed_num Integer 移动失败设备数 results Array of northMoveDevicesResult objects 设备移动结果详细信息 表5 northMoveDevicesResult 参数 参数类型 描述 device_id String 设备ID,设备唯一标识符 result ResultInfo object 错误或正确信息 表6 ResultInfo 参数 参数类型 描述 code String 单个结果码 msg String 单个结果信息
  • URI POST /v1/{user_id}/device-orgs/{device_org_id}/move-devices 表1 路径参数 参数 是否必选 参数类型 描述 device_org_id 是 String 设备分组ID:由数字组成,长度范围[1,25],可以从查询子级设备组织获取,根节点下不允许添加设备 user_id 是 String 用户ID:由数字组成,长度范围[15,25],获取方式参考获取user ID与下载AK/SK章节
共100000条