华为云用户手册

  • 创建视频 内容审核 作业 本章节对创建 视频审核 AK/SK方式使用SDK进行示例说明。 示例代码中可以使用RunCreateVideoModerationJobRequest类的withUrls配置待审核的视频url(仅支持url方式),配置完成后运行即可。 package main import ( "fmt" "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic" moderation "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/moderation/v3" "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/moderation/v3/model" region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/moderation/v3/region" ) func main() { // 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全; // 本示例以ak和sk保存在环境变量中来实现身份验证为例,运行本示例前请先在本地环境中设置环境变量HUAWEICLOUD_SDK_AK和HUAWEICLOUD_SDK_SK。 ak := os.Getenv("HUAWEICLOUD_SDK_AK") sk := os.Getenv("HUAWEICLOUD_SDK_SK") auth := basic.NewCredentialsBuilder(). WithAk(ak). WithSk(sk). Build() client := moderation.NewModerationClient( moderation.ModerationClientBuilder(). WithRegion(region.ValueOf("xxx")). //把xxx替换成服务所在的区域,例如北京四:cn-north-4。 WithCredential(auth). Build()) request := &model.RunCreateVideoModerationJobRequest{} var listAudioCategoriesbody = []model.VideoCreateRequestAudioCategories{ model.GetVideoCreateRequestAudioCategoriesEnum().PORN, } var listImageCategoriesbody = []model.VideoCreateRequestImageCategories{ model.GetVideoCreateRequestImageCategoriesEnum().PORN, } frameIntervalData:= float32(5.5) databody := &model.VideoCreateRequestData{ Url: "http://xxx.xx.xxxx", FrameInterval: &frameIntervalData, } callbackVideoCreateRequest:= "http://xxx.xx.xxxx" request.Body = &model.VideoCreateRequest{ Callback: &callbackVideoCreateRequest, AudioCategories: &listAudioCategoriesbody, ImageCategories: listImageCategoriesbody, EventType: model.GetVideoCreateRequestEventTypeEnum().DEFAULT, Data: databody, } response, err := client.RunCreateVideoModerationJob(request) if err == nil { fmt.Printf("%+v\n", response) } else { fmt.Println(err) } } 控制台输出创建视频内容审核作业的结果,创建视频内容审核结果输出到控制台。 RunCreateVideoModerationJobResponse{"request_id":"dbbcb75d1a174bfa899a38be38fdd107", "job_id": "xxx"} 父主题: 视频审核
  • 文本内容审核 (V3) 本章节对文本内容审核AK/SK方式使用SDK进行示例说明。 示例代码中可以将TextDetectionDataReq的text配置待检测的文本信息,配置完成后运行即可。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 package main import ( "fmt" "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic" moderation "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/moderation/v3" "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/moderation/v3/model" region "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/region" ) func main() { // 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全; // 本示例以ak和sk保存在环境变量中来实现身份验证为例,运行本示例前请先在本地环境中设置环境变量HUAWEICLOUD_SDK_AK和HUAWEICLOUD_SDK_SK。 ak := os.Getenv("HUAWEICLOUD_SDK_AK") sk := os.Getenv("HUAWEICLOUD_SDK_SK") auth := basic.NewCredentialsBuilder(). WithAk(ak). WithSk(sk). Build() client := moderation.NewModerationClient( moderation.ModerationClientBuilder(). WithRegion(region.ValueOf("xxx")). //把xxx替换成服务所在的区域,例如北京四:cn-north-4。 WithCredential(auth). Build()) request := &model.RunTextModerationRequest{} databody := &model.TextDetectionDataReq{ Text: "text", } request.Body = &model.TextDetectionReq{ Data: databody, EventType: "comment", } response, err := client.RunTextModeration(request) if err == nil { fmt.Printf("%+v\n", response) } else { fmt.Println(err) } } 审核结果输出到控制台表示执行成功,文本内容审核结果输出到控制台。 RunTextModerationResponse {"request_id": "d81702cfd3599e103030c3d52d6f955f", "result": {"suggestion": "pass", "label": "normal", "details": []}} 父主题: 文本审核
  • 创建视频流内容审核作业 本章节对创建视频流审核AK/SK方式使用SDK进行示例说明。 示例代码中可以使用VideoStreamCreateRequestData类的withUrls配置待审核的视频流url(仅支持url方式),配置完成后运行即可。 服务所在的应用区域和终端节点,详情请查看 地区和终端节点 。 # coding: utf-8 from huaweicloudsdkcore.auth.credentials import BasicCredentials from huaweicloudsdkmoderation.v3.region.moderation_region import ModerationRegion from huaweicloudsdkcore.exceptions import exceptions from huaweicloudsdkmoderation.v3 import * import os if __name__ == "__main__": # 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全; # 本示例以ak和sk保存在环境变量中来实现身份验证为例,运行本示例前请先在本地环境中设置环境变量HUAWEICLOUD_SDK_AK和HUAWEICLOUD_SDK_SK。 ak = os.getenv("HUAWEICLOUD_SDK_AK") sk = os.getenv("HUAWEICLOUD_SDK_SK") credentials = BasicCredentials(ak, sk) client = ModerationClient.new_builder() \ .with_credentials(credentials) \ .with_region(ModerationRegion.value_of("xxx"))\ //把xxx替换成服务所在的区域,例如北京四:cn-north-4。 .build() try: request = RunCreateVideoStreamModerationJobRequest() listImageCategoriesbody = [ "politics" ] databody = VideoStreamCreateRequestData( url="http://xxx" ) request.body = VideoStreamCreateRequest( param_callback="http://xxxxxx", image_categories=listImageCategoriesbody, event_type="default", data=databody ) response = client.run_create_video_stream_moderation_job(request) print(response) except exceptions.ClientRequestException as e: print(e.status_code) print(e.request_id) print(e.error_code) print(e.error_msg) 控制台输出创建视频流内容审核作业的结果。 { "request_id": "fa520dddb6b54af51c8d1e6d19898656", "job_id": "01690387200_09ad14f155bb47e9bf2718ace57c73ed" } 父主题: 视频流审核
  • 文本内容审核(v2) 本章节对文本内容审核AK/SK方式使用SDK进行示例说明。 示例代码中修改TextDetectionItemsReq的text值配置待检测的文本信息,配置完成后运行即可。 服务所在的应用区域和终端节点,详情请查看 地区和终端节点 。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 # coding: utf-8 from huaweicloudsdkcore.auth.credentials import BasicCredentials from huaweicloudsdkcore.exceptions import exceptions from huaweicloudsdkmoderation.v2.region.moderation_region import ModerationRegion from huaweicloudsdkmoderation.v2 import ModerationClient,RunTextModerationRequest,TextDetectionItemsReq,TextDetectionReq import os if __name__ == "__main__": # 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全; # 本示例以ak和sk保存在环境变量中来实现身份验证为例,运行本示例前请先在本地环境中设置环境变量HUAWEICLOUD_SDK_AK和HUAWEICLOUD_SDK_SK。 ak = os.getenv("HUAWEICLOUD_SDK_AK") sk = os.getenv("HUAWEICLOUD_SDK_SK") credentials = BasicCredentials(ak, sk) client = ModerationClient.new_builder() \ .with_credentials(credentials) \ .with_region(ModerationRegion.value_of("xxx")) \ //把xxx替换成服务所在的区域,例如北京四:cn-north-4。 .build() try: request = RunTextModerationRequest() listTextDetectionItemsReqItemsbody = [ TextDetectionItemsReq( text="text", //此处输入待检测文本 type="content" ) ] listTextDetectionReqCategoriesbody = [ "porn", "ad", "abuse", "contraband", "flood" ] request.body = TextDetectionReq( items=listTextDetectionItemsReqItemsbody, categories=listTextDetectionReqCategoriesbody ) response = client.run_text_moderation(request) print(response.status_code) print(response) except exceptions.ClientRequestException as e: print(e.status_code) print(e.request_id) print(e.error_code) print(e.error_msg) 控制台输出200即表示程序执行成功,文本内容审核结果输出到控制台。 200 {"result": {"suggestion": "block", "detail": {"contraband": ["亚砷酸钾"], "porn": ["luo聊"]}}}} 父主题: 文本审核
  • 查询任务 本章节对图像内容审核异步批量-查询任务AK/SK方式使用SDK进行示例说明。 示例代码中修改RunCheckResultRequest的job_id 配置审核任务的id,配置完成后运行即可。服务所在的应用区域和终端节点,详情请查看 地区和终端节点 。 # coding: utf-8 from huaweicloudsdkcore.auth.credentials import BasicCredentials from huaweicloudsdkcore.exceptions import exceptions from huaweicloudsdkmoderation.v2.region.moderation_region import ModerationRegion from huaweicloudsdkmoderation.v2 import * from huaweicloudsdkmoderation.v2 import ModerationClient,RunCheckResultRequest import os if __name__ == "__main__": # 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全; # 本示例以ak和sk保存在环境变量中来实现身份验证为例,运行本示例前请先在本地环境中设置环境变量HUAWEICLOUD_SDK_AK和HUAWEICLOUD_SDK_SK。 ak = os.getenv("HUAWEICLOUD_SDK_AK") sk = os.getenv("HUAWEICLOUD_SDK_SK") credentials = BasicCredentials(ak, sk) client = ModerationClient.new_builder() \ .with_credentials(credentials) \ .with_region(ModerationRegion.value_of("xxx")) \ //把xxx替换成服务所在的区域,例如北京四:cn-north-4。 .build() try: request = RunCheckResultRequest() request.job_id = "xxx" //此处需要输入您的jobID response = client.run_check_result(request) print(response.status_code) print(response) except exceptions.ClientRequestException as e: print(e.status_code) print(e.request_id) print(e.error_code) print(e.error_msg) 控制台输出200即表示程序执行成功,异步批量查询任务的结果输出到控制台。 200 {'result': {'create_time': '2021-08-04T08:30:41Z', 'items': [{'category_suggestions': { 'porn': 'pass', 'terrorism': 'pass'}, 'detail': {'ad': None, 'porn': [{'confidence': 0.9883, 'label': 'normal'}, {'confidence': 0.0039, 'label': 'porn'}, {'confidence': 0.0078, 'label': 'sexy'}], 'terrorism': [{'confidence': 0.0002, 'label': 'terrorist'}, {'confidence': 0.0002, 'label': 'fascist'}, {'confidence': 0.0001, 'label': 'cult'}, {'confidence': 0.0001, 'label': 'kidnap'}, {'confidence': 0.0006, 'label': 'riot'}, {'confidence': 0.0001, 'label': 'parade'}, {'confidence': 0.0002, 'label': 'corpse'}, {'confidence': 0.0001, 'label': 'bloody'}, {'confidence': 0.0001, 'label': 'knife'}, {'confidence': 0.0001, 'label': 'gun'}, {'confidence': 0.0002, 'label': 'military_weapon'}, {'confidence': 0.0, 'label': 'special_characters'}, {'confidence': 0.9994, 'label': 'normal'}]}, 'suggestion': 'pass', 'url': 'https://sdk-obs-source-save.obs.cn-north-4.myhuaweicloud.com/terrorism.jpg'}], 'job_id': 'xxx', 'status': 'finish', 'update_time': '2021-08-04T08:30:41Z'}} Process finished with exit code 0 父主题: 图像内容审核(异步批量)(V2)
  • 查询音频内容审核作业 本章节对查询音频内容审核AK/SK方式使用SDK进行示例说明。 示例代码中需要配置使用RunQueryAudioModerationJobRequest类的withJobId配置审核任务的id,配置完成后运行即可。 服务所在的应用区域和终端节点,详情请查看 地区和终端节点 。 using System; using System.Collections.Generic; using HuaweiCloud.SDK.Core; using HuaweiCloud.SDK.Core.Auth; using HuaweiCloud.SDK.Moderation; using HuaweiCloud.SDK.Moderation.V3; using HuaweiCloud.SDK.Moderation.V3.Model; namespace RunQueryAudioModerationJobSolution { class Program { static void Main(string[] args) { //认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全 //本示例以ak和sk保存在环境变量中来实现身份验证为例,运行本示例前请先在本地环境中设置环境变量HUAWEICLOUD_SDK_AK和HUAWEICLOUD_SDK_SK string accessKey= Environment.GetEnvironmentVariable("HUAWEICLOUD_SDK_AK", EnvironmentVariableTarget.Machine); string secretKey= Environment.GetEnvironmentVariable("HUAWEICLOUD_SDK_SK", EnvironmentVariableTarget.Machine); var config = HttpConfig.GetDefaultConfig(); config.IgnoreSslVerification = true; var auth = new BasicCredentials(ak, sk); var client = ModerationClient.NewBuilder() .WithCredential(auth) .WithRegion(ModerationRegion.ValueOf("xxx")) //把xxx替换成服务所在的区域,例如北京四:cn-north-4。 .WithHttpConfig(config) .Build(); var req = new RunQueryAudioModerationJobRequest { JobId = "xxx" //此处需要输入您的jobID }; try { var resp = client.RunQueryAudioModerationJob(req); var respStatusCode = resp.HttpStatusCode; Console.WriteLine(respStatusCode); Console.WriteLine(JsonConvert.DeserializeObject(resp.HttpBody)); } catch (RequestTimeoutException requestTimeoutException) { Console.WriteLine(requestTimeoutException.ErrorMessage); } catch (ServiceResponseException clientRequestException) { Console.WriteLine(clientRequestException.HttpStatusCode); Console.WriteLine(clientRequestException.ErrorCode); Console.WriteLine(clientRequestException.ErrorMsg); } catch (ConnectionException connectionException) { Console.WriteLine(connectionException.ErrorMessage); } } } } 控制台输出200即表示程序执行成功,查询音频内容审核结果输出到控制台。 200 { "job_id":"xxx", "status":"succeeded", "result":{ "suggestion":"block", "details":[ { "start_time":0, "suggestion":"block", "end_time":10, "label":"porn", "audio_text":"xxxx", "segments":[ { "segment":"xxx" }, { "segment":"xxx" }, { "segment":"xxx" } ] }, { "start_time":30, "suggestion":"block", "end_time":40, "label":"porn", "audio_text":"xxx", "segments":[ { "segment":"xx" } ] } ], "audio_text":"xxxxxx" }, "request_params":{ "event_type":"default", "data":{ "url":"https://xxxx.wav" }, "callback":"http://xxx", "categories":[ "porn", "ad" ] }, "create_time":"2022-06-20 11:05:29", "update_time":"2022-06-20 11:07:08", "request_id":"2419446b1fe14203f64e4018d12db3dd" } 父主题: 音频审核
  • 提交任务 本章节对图像内容审核(异步批量)-提交任务AK/SK方式使用SDK进行示例说明。 示例代码中可以修改TaskSumbitReq的Urls配置待审核的图像url(仅支持url方式),配置完成后运行即可。 package main import ( "fmt" "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic" moderation "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/moderation/v2" "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/moderation/v2/model" region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/moderation/v2/region" ) func main() { // 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全; // 本示例以ak和sk保存在环境变量中来实现身份验证为例,运行本示例前请先在本地环境中设置环境变量HUAWEICLOUD_SDK_AK和HUAWEICLOUD_SDK_SK。 ak := os.Getenv("HUAWEICLOUD_SDK_AK") sk := os.Getenv("HUAWEICLOUD_SDK_SK") auth := basic.NewCredentialsBuilder(). WithAk(ak). WithSk(sk). Build() client := moderation.NewModerationClient( moderation.ModerationClientBuilder(). WithRegion(region.ValueOf("xxx")). //把xxx替换成服务所在的区域,例如北京四:cn-north-4。 WithCredential(auth). Build()) request := &model.RunTaskSumbitRequest{} var listCategoriesbody = []model.TaskSumbitReqCategories{ model.GetTaskSumbitReqCategoriesEnum().PORN, model.GetTaskSumbitReqCategoriesEnum().TERRORISM, } var listUrlsbody = []string{ "https://XXX.jpg", //此处替换为公网可以访问的图片地址 } request.Body = &model.TaskSumbitReq{ Categories: &listCategoriesbody, Urls: listUrlsbody, } response, err := client.RunTaskSumbit(request) if err == nil { fmt.Printf("%+v\n", response) } else { fmt.Println(err) }} 提交任务结果输出到控制台表示执行成功,异步批量任务提交的结果输出到控制台。 RunTaskSumbitResponse {"result":{"job_id":"xxx"}} Process exiting with code: 0 父主题: 内容审核-图像 (异步批量)(V2)
  • 关闭视频流内容审核作业 本章节对关闭视频流审核AK/SK方式使用SDK进行示例说明。 示例代码中需要配置使用RunCloseVideoStreamModerationJobRequest类的withJobId配置审核任务的id,配置完成后运行即可。 服务所在的应用区域和终端节点,详情请查看 地区和终端节点 。 # coding: utf-8 from huaweicloudsdkcore.auth.credentials import BasicCredentials from huaweicloudsdkmoderation.v3.region.moderation_region import ModerationRegion from huaweicloudsdkcore.exceptions import exceptions from huaweicloudsdkmoderation.v3 import * import os if __name__ == "__main__": # 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全; # 本示例以ak和sk保存在环境变量中来实现身份验证为例,运行本示例前请先在本地环境中设置环境变量HUAWEICLOUD_SDK_AK和HUAWEICLOUD_SDK_SK。 ak = os.getenv("HUAWEICLOUD_SDK_AK") sk = os.getenv("HUAWEICLOUD_SDK_SK") credentials = BasicCredentials(ak, sk) client = ModerationClient.new_builder() \ .with_credentials(credentials) \ .with_region(ModerationRegion.value_of("xxx"))\ //把xxx替换成服务所在的区域,例如北京四:cn-north-4。 .build() try: request = RunCloseVideoStreamModerationJobRequest() request.job_id = "xxxxx" response = client.run_close_video_stream_moderation_job(request) print(response) except exceptions.ClientRequestException as e: print(e.status_code) print(e.request_id) print(e.error_code) print(e.error_msg) 控制台输出关闭视频流内容审核作业提交的结果。 { "result": "success" } 父主题: 视频流审核
  • 图像内容审核(V3) 本章节对图像内容审核AK/SK方式使用SDK进行示例说明。 示例代码中可以使用Url或Image配置图像信息(代表使用url或者图像的base64),示例中以url为例配置完成后运行即可。 package main import ( "fmt" "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic" moderation "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/moderation/v3" "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/moderation/v3/model" region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/moderation/v3/region" ) func main() { // 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全; // 本示例以ak和sk保存在环境变量中来实现身份验证为例,运行本示例前请先在本地环境中设置环境变量HUAWEICLOUD_SDK_AK和HUAWEICLOUD_SDK_SK。 ak := os.Getenv("HUAWEICLOUD_SDK_AK") sk := os.Getenv("HUAWEICLOUD_SDK_SK") auth := basic.NewCredentialsBuilder(). WithAk(ak). WithSk(sk). WithProjectId(projectId). Build() client := moderation.NewModerationClient( moderation.ModerationClientBuilder(). WithRegion(region.ValueOf("xxx")). //把xxx替换成服务所在的区域,例如北京四:cn-north-4。 WithCredential(auth). Build()) request := &model.CheckImageModerationRequest{} var listCategoriesbody = []string{ "porn", } urlImageDetectionReq:= "http://www.xxxx.xxxx" request.Body = &model.ImageDetectionReq{ Url: &urlImageDetectionReq, Categories: listCategoriesbody, EventType: "head_image", } response, err := client.CheckImageModeration(request) if err == nil { fmt.Printf("%+v\n", response) } else { fmt.Println(err) } } 审核结果输出到控制台表示执行成功,图像内容审核结果输出到控制台。 CheckImageModerationResponse {"request_id": "69b424920668cb15e6d25eef879a023b", "result": {"suggestion": "block", "category": "image_text", "details": [{"suggestion": "block", "category": "image_text", "confidence": 1.0, "qr_location": {"top_left_x": 74, "top_left_y": 66, "bottom_right_x": 151, "bottom_right_y": 142}, "qr_content": "http://xxxxxx/xxxxx", "label": "qr_code"}, {"suggestion": "block", "category": "image_text", "confidence": 0.98779297, "label": "ad"}, {"suggestion": "block", "category": "image_text", "confidence": 1.0, "label": "qr_code"}], "ocr_text": "xxxxxxxxx"}} 父主题: 图像审核
  • 查询视频内容审核作业 本章节对查询视频审核AK/SK方式使用SDK进行示例说明。 示例代码中需要配置使用RunQueryVideoModerationJobRequest类的withJobId配置审核任务的id,配置完成后运行即可。 服务所在的应用区域和终端节点,详情请查看 地区和终端节点 。 package com.huaweicloud.sdk.test; import com.huaweicloud.sdk.core.auth.ICredential; import com.huaweicloud.sdk.core.auth.BasicCredentials; import com.huaweicloud.sdk.core.exception.ConnectionException; import com.huaweicloud.sdk.core.exception.RequestTimeoutException; import com.huaweicloud.sdk.core.exception.ServiceResponseException; import com.huaweicloud.sdk.moderation.v3.region.ModerationRegion; import com.huaweicloud.sdk.moderation.v3.*; import com.huaweicloud.sdk.moderation.v3.model.*; public class RunQueryVideoModerationJobSolution { public static void main(String[] args) { // 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全 // 本示例以ak和sk保存在环境变量中来实现身份验证为例,运行本示例前请先在本地环境中设置环境变量HUAWEICLOUD_SDK_AK和HUAWEICLOUD_SDK_SK String ak = System.getenv("HUAWEICLOUD_SDK_AK"); String sk = System.getenv("HUAWEICLOUD_SDK_SK"); ICredential auth = new BasicCredentials() .withAk(ak) .withSk(sk); ModerationClient client = ModerationClient.newBuilder() .withCredential(auth) .withRegion(ModerationRegion.valueOf("xxx")) //把xxx替换成服务所在的区域,例如北京四:cn-north-4。 .build(); RunQueryVideoModerationJobRequest request = new RunQueryVideoModerationJobRequest(); request.withJobId("jobId"); try { RunQueryVideoModerationJobResponse response = client.runQueryVideoModerationJob(request); System.out.println(response.toString()); } catch (ConnectionException e) { e.printStackTrace(); } catch (RequestTimeoutException e) { e.printStackTrace(); } catch (ServiceResponseException e) { e.printStackTrace(); System.out.println(e.getHttpStatusCode()); System.out.println(e.getErrorCode()); System.out.println(e.getErrorMsg()); } } } 控制台输出查询视频内容审核作业的结果,查询视频内容审核结果输出到控制台。 父主题: 视频审核
  • 图像内容审核(V2) 本章节对图像内容审核AK/SK方式使用SDK进行示例说明。 示例代码中可以修改ImageDetectionReq的url或image方法配置图像信息(image和url参数二选一),示例中以url为例配置完成后运行即可。 服务所在的应用区域和终端节点,详情请查看 地区和终端节点 。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 # coding: utf-8 from huaweicloudsdkcore.auth.credentials import BasicCredentials from huaweicloudsdkcore.exceptions import exceptions from huaweicloudsdkmoderation.v2.region.moderation_region import ModerationRegion from huaweicloudsdkmoderation.v2 import ModerationClient,RunImageModerationRequest,ImageDetectionReq import os if __name__ == "__main__": # 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全; # 本示例以ak和sk保存在环境变量中来实现身份验证为例,运行本示例前请先在本地环境中设置环境变量HUAWEICLOUD_SDK_AK和HUAWEICLOUD_SDK_SK。 ak = os.getenv("HUAWEICLOUD_SDK_AK") sk = os.getenv("HUAWEICLOUD_SDK_SK") credentials = BasicCredentials(ak, sk) client = ModerationClient.new_builder() \ .with_credentials(credentials) \ .with_region(ModerationRegion.value_of("xxx")) \ //把xxx替换成服务所在的区域,例如北京四:cn-north-4。 .build() try: request = RunImageModerationRequest() listImageDetectionReqCategoriesbody = [ "terrorism", "porn", "ad" ] request.body = ImageDetectionReq( threshold=0, categories=listImageDetectionReqCategoriesbody, moderation_rule="default", url="https://XXX.jpg" //此处替换为公网可以访问的图片地址 ) response = client.run_image_moderation(request) print(response.status_code) print(response) except exceptions.ClientRequestException as e: print(e.status_code) print(e.request_id) print(e.error_code) print(e.error_msg) 控制台输出200即表示程序执行成功,图像内容审核结果输出到控制台。 200 {"result": {"detail": { "porn": [{"confidence": 0.9883, "label": "normal"}, {"confidence": 0.0039, "label": "porn"}, {"confidence": 0.0078, "label": "sexy"}], "terrorism": [{"confidence": 0.0002, "label": "terrorist"}, {"confidence": 0.0002, "label": "fascist"}, {"confidence": 0.0001, "label": "cult"}, {"confidence": 0.0002}, {"confidence": 0.0001, "label": "kidnap"}, {"confidence": 0.0006, "label": "riot"}, {"confidence": 0.0001, "label": "parade"}, {"confidence": 0.0002, "label": "corpse"}, {"confidence": 0.0001, "label": "bloody"}, {"confidence": 0.0001, "label": "knife"}, {"confidence": 0.0001, "label": "gun"}, {"confidence": 0.0002, "label": "military_weapon"}, {"confidence": 0.0, "label": "special_characters"}, {"confidence": 0.9994, "label": "normal"}], "ad": [{"confidence": 0.0, "label": "ad"}, {"confidence": 1.0, "label": "normal"}]}, "suggestion": "pass", "category_suggestions": { "ad": "pass", "terrorism": "pass", "porn": "pass"}}} Process finished with exit code 0 父主题: 图像审核
  • 概览 业务系统上线时,用户通过RTD界面可定义业务模型,包括定义业务租户信息、业务事件源和事件源数据报文格式、业务关注的维度信息(例如卡人/商户等)、业务数据库建模信息以及事件变量和批次变量元数据,最终使平台上该租户的业务上线。 用户可以根据业务需要,直接在平台上创建和配置自定义的系统运行环境,对整个业务应用的基础平台数据进行运维,主要包括以下操作: IT初始配置:对系统进行初始化配置,可进行数据库建模,指定该租户下的事件源、维度,并建立事件源与维度之间的映射关系,然后进行上下线管理。 基础业务配置:在完成IT初始化的基础上,由业务人员定义事件源下对应的事件变量 ,定义每个事件源下的黑白名单过滤规则,定义每个维度下的离线批次变量,并进行上下线操作管理。 客户侧业务配置:客户根据业务需求,创建和上线实时查询变量,获取MOTService中实时数据查询结果;创建模型变量,通过训练好的模型进行数据分析计算;创建和上线PL/SQL存储过程规则,判断数据是否命中对应规则。 数据库工具:执行DDL、DML和DQL操作,支持对MOTService中的表、视图、存储过程的增删查改等操作。 模板管理:通过给规则等创建模板,通过修改模板进行新的业务创建,简化用户操作。 表1 RTD操作一览表 类别 操作 概述 IT初始配置 配置分析维度 数据会进行分区,维度用来区分这些分区,例如:卡人维度,商户维度。 添加事件源 数据来源定义,包括事件源下用到哪几个维度,哪些数据源字段需要入库。 基础业务配置 配置事件变量 后续变量、规则能够使用一个事件源下的哪些报文字段,通过事件变量来定义,即只能使用定义了的事件变量。 配置批次变量 离线大数据集群进行计算,再将结果导入进来,批次变量管理只定义使用哪些计算结果。 添加黑白名单过滤规则 SQL代码通过查询黑、白名单中是否存在,命中则进行对应过滤操作。 客户侧业务配置 添加实时查询变量 实时查询变量,是通过写SQL代码查询MOTService中实时数据来计算结果。 添加模型变量 评分模型是基于用户历史数据离线训练而成的数据集,可以根据实时数据生成预测评分结果。 决策引擎 配置决策引擎 数据经决策引擎计算后生成决策评分,最终供业务做决策使用。 数据库工具 数据库操作 在MOTService中运行DDL、DML和DQL命令,包括建表、查询、索引等。 数据定时清理任务管理 设置数据表的定时清理任务。 模板管理 模板管理 管理事件源、黑白名单过滤等的创建模板。 父主题: 业务运营
  • 准备本地横向联邦数据资源 上传数据集文件(作业参与方) 上传数据集文件到计算节点挂载路径下,供计算节点执行的脚本读取。如果是主机挂载,上传到宿主机的挂载路径下。如果是OBS挂载,使用华为云提供的 对象存储服务 ,上传到当前计算节点使用的对象桶中。 图5 对象桶名称 此处以主机挂载为例: 创建一个主机挂载的计算节点Agent1,挂载路径为/tmp/tics1/。 使用文件上传工具上传包含数据集iris1.csv的dataset文件夹到宿主机/tmp/tics1/目录下。 iris1.csv内容如下: sepal_length,sepal_width,petal_length,petal_width,class 5.1,3.5,1.4,0.3,Iris-setosa 5.7,3.8,1.7,0.3,Iris-setosa 5.1,3.8,1.5,0.3,Iris-setosa 5.4,3.4,1.7,0.2,Iris-setosa 5.1,3.7,1.5,0.4,Iris-setosa 4.6,3.6,1,0.2,Iris-setosa 5.1,3.3,1.7,0.5,Iris-setosa 4.8,3.4,1.9,0.2,Iris-setosa 5,3,1.6,0.2,Iris-setosa 5,3.4,1.6,0.4,Iris-setosa 5.2,3.5,1.5,0.2,Iris-setosa 5.2,3.4,1.4,0.2,Iris-setosa 4.7,3.2,1.6,0.2,Iris-setosa 4.8,3.1,1.6,0.2,Iris-setosa 5.4,3.4,1.5,0.4,Iris-setosa 5.2,4.1,1.5,0.1,Iris-setosa 5.5,4.2,1.4,0.2,Iris-setosa 4.9,3.1,1.5,0.1,Iris-setosa 5,3.2,1.2,0.2,Iris-setosa 5.5,3.5,1.3,0.2,Iris-setosa 4.9,3.1,1.5,0.1,Iris-setosa 4.4,3,1.3,0.2,Iris-setosa 5.1,3.4,1.5,0.2,Iris-setosa 5,3.5,1.3,0.3,Iris-setosa 4.5,2.3,1.3,0.3,Iris-setosa 4.4,3.2,1.3,0.2,Iris-setosa 5,3.5,1.6,0.6,Iris-setosa 5.1,3.8,1.9,0.4,Iris-setosa 4.8,3,1.4,0.3,Iris-setosa 5.1,3.8,1.6,0.2,Iris-setosa 4.6,3.2,1.4,0.2,Iris-setosa 5.3,3.7,1.5,0.2,Iris-setosa 5,3.3,1.4,0.2,Iris-setosa 6.8,2.8,4.8,1.4,Iris-versicolor 6.7,3,5,1.7,Iris-versicolor 6,2.9,4.5,1.5,Iris-versicolor 5.7,2.6,3.5,1,Iris-versicolor 5.5,2.4,3.8,1.1,Iris-versicolor 5.5,2.4,3.7,1,Iris-versicolor 5.8,2.7,3.9,1.2,Iris-versicolor 6,2.7,5.1,1.6,Iris-versicolor 5.4,3,4.5,1.5,Iris-versicolor 6,3.4,4.5,1.6,Iris-versicolor 6.7,3.1,4.7,1.5,Iris-versicolor 6.3,2.3,4.4,1.3,Iris-versicolor 5.6,3,4.1,1.3,Iris-versicolor 5.5,2.5,4,1.3,Iris-versicolor 5.5,2.6,4.4,1.2,Iris-versicolor 6.1,3,4.6,1.4,Iris-versicolor 5.8,2.6,4,1.2,Iris-versicolor 5,2.3,3.3,1,Iris-versicolor 5.6,2.7,4.2,1.3,Iris-versicolor 5.7,3,4.2,1.2,Iris-versicolor 5.7,2.9,4.2,1.3,Iris-versicolor 6.2,2.9,4.3,1.3,Iris-versicolor 5.1,2.5,3,1.1,Iris-versicolor 5.7,2.8,4.1,1.3,Iris-versicolor 6.3,3.3,6,2.5,Iris-virginica 5.8,2.7,5.1,1.9,Iris-virginica 7.1,3,5.9,2.1,Iris-virginica 6.3,2.9,5.6,1.8,Iris-virginica 6.5,3,5.8,2.2,Iris-virginica 7.6,3,6.6,2.1,Iris-virginica 4.9,2.5,4.5,1.7,Iris-virginica 7.3,2.9,6.3,1.8,Iris-virginica 6.7,2.5,5.8,1.8,Iris-virginica 7.2,3.6,6.1,2.5,Iris-virginica 6.5,3.2,5.1,2,Iris-virginica 6.4,2.7,5.3,1.9,Iris-virginica 6.8,3,5.5,2.1,Iris-virginica 5.7,2.5,5,2,Iris-virginica 5.8,2.8,5.1,2.4,Iris-virginica 6.4,3.2,5.3,2.3,Iris-virginica 6.5,3,5.5,1.8,Iris-virginica 7.7,3.8,6.7,2.2,Iris-virginica 7.7,2.6,6.9,2.3,Iris-virginica 6,2.2,5,1.5,Iris-virginica 6.9,3.2,5.7,2.3,Iris-virginica 5.6,2.8,4.9,2,Iris-virginica 7.7,2.8,6.7,2,Iris-virginica 6.3,2.7,4.9,1.8,Iris-virginica 6.7,3.3,5.7,2.1,Iris-virginica 7.2,3.2,6,1.8,Iris-virginica 为了使容器内的计算节点程序有权限能够读取到文件,使用命令chown -R 1000:1000 /tmp/tics1/修改挂载目录下的文件的属主和组为1000:1000。 在第二台主机上创建计算节点Agent2,挂载路径为/tmp/tics2/。上传包含数据集iris2.csv的dataset文件夹到宿主机目录下,修改属主。 iris2.csv的内容如下: sepal_length,sepal_width,petal_length,petal_width,class 5.1,3.5,1.4,0.2,Iris-setosa 4.9,3,1.4,0.2,Iris-setosa 4.7,3.2,1.3,0.2,Iris-setosa 4.6,3.1,1.5,0.2,Iris-setosa 5,3.6,1.4,0.2,Iris-setosa 5.4,3.9,1.7,0.4,Iris-setosa 4.6,3.4,1.4,0.3,Iris-setosa 5,3.4,1.5,0.2,Iris-setosa 4.4,2.9,1.4,0.2,Iris-setosa 4.9,3.1,1.5,0.1,Iris-setosa 5.4,3.7,1.5,0.2,Iris-setosa 4.8,3.4,1.6,0.2,Iris-setosa 4.8,3,1.4,0.1,Iris-setosa 4.3,3,1.1,0.1,Iris-setosa 5.8,4,1.2,0.2,Iris-setosa 5.7,4.4,1.5,0.4,Iris-setosa 5.4,3.9,1.3,0.4,Iris-setosa 7,3.2,4.7,1.4,Iris-versicolor 6.4,3.2,4.5,1.5,Iris-versicolor 6.9,3.1,4.9,1.5,Iris-versicolor 5.5,2.3,4,1.3,Iris-versicolor 6.5,2.8,4.6,1.5,Iris-versicolor 5.7,2.8,4.5,1.3,Iris-versicolor 6.3,3.3,4.7,1.6,Iris-versicolor 4.9,2.4,3.3,1,Iris-versicolor 6.6,2.9,4.6,1.3,Iris-versicolor 5.2,2.7,3.9,1.4,Iris-versicolor 5,2,3.5,1,Iris-versicolor 5.9,3,4.2,1.5,Iris-versicolor 6,2.2,4,1,Iris-versicolor 6.1,2.9,4.7,1.4,Iris-versicolor 5.6,2.9,3.6,1.3,Iris-versicolor 6.7,3.1,4.4,1.4,Iris-versicolor 5.6,3,4.5,1.5,Iris-versicolor 5.8,2.7,4.1,1,Iris-versicolor 6.2,2.2,4.5,1.5,Iris-versicolor 5.6,2.5,3.9,1.1,Iris-versicolor 5.9,3.2,4.8,1.8,Iris-versicolor 6.1,2.8,4,1.3,Iris-versicolor 6.3,2.5,4.9,1.5,Iris-versicolor 6.1,2.8,4.7,1.2,Iris-versicolor 6.4,2.9,4.3,1.3,Iris-versicolor 6.6,3,4.4,1.4,Iris-versicolor 6.8,2.8,4.8,1.4,Iris-versicolor 6.2,2.8,4.8,1.8,Iris-virginica 6.1,3,4.9,1.8,Iris-virginica 6.4,2.8,5.6,2.1,Iris-virginica 7.2,3,5.8,1.6,Iris-virginica 7.4,2.8,6.1,1.9,Iris-virginica 7.9,3.8,6.4,2,Iris-virginica 6.4,2.8,5.6,2.2,Iris-virginica 6.3,2.8,5.1,1.5,Iris-virginica 6.1,2.6,5.6,1.4,Iris-virginica 7.7,3,6.1,2.3,Iris-virginica 6.3,3.4,5.6,2.4,Iris-virginica 6.4,3.1,5.5,1.8,Iris-virginica 6,3,4.8,1.8,Iris-virginica 6.9,3.1,5.4,2.1,Iris-virginica 6.7,3.1,5.6,2.4,Iris-virginica 6.9,3.1,5.1,2.3,Iris-virginica 5.8,2.7,5.1,1.9,Iris-virginica 6.8,3.2,5.9,2.3,Iris-virginica 6.7,3.3,5.7,2.5,Iris-virginica 6.7,3,5.2,2.3,Iris-virginica 6.3,2.5,5,1.9,Iris-virginica 6.5,3,5.2,2,Iris-virginica 6.2,3.4,5.4,2.3,Iris-virginica 5.9,3,5.1,1.8,Iris-virginica 准备模型文件/初始权重(作业发起方) 作业发起方需要提供模型、初始权重(非必须),上传到Agent1的挂载目录下并使用命令chown -R 1000:1000 /tmp/tics1/修改挂载目录下的文件的属主和组。 使用python代码创建模型文件,保存为二进制文件model.h5,以鸢尾花为例,生成如下的模型: import tensorflow as tf import keras model = keras.Sequential([ keras.layers.Dense(4, activation=tf.nn.relu, input_shape=(4,)), keras.layers.Dense(6, activation=tf.nn.relu), keras.layers.Dense(3, activation='softmax') ]) model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy']) model.save("d:/model.h5") 初始权重的格式是浮点数的数组,与模型对应。使用联邦学习训练出来的结果result_1可以作为初始权重,样例如下: -0.23300957679748535,0.7804553508758545,0.0064492723904550076,0.5866460800170898,0.676144003868103,-0.7883696556091309,0.5472091436386108,-0.20961782336235046,0.58524489402771,-0.5079598426818848,-0.47474920749664307,-0.3519996106624603,-0.10822880268096924,-0.5457949042320251,-0.28117161989212036,-0.7369481325149536,-0.04728877171874046,0.003856887575238943,0.051739662885665894,0.033792052417993546,-0.31878742575645447,0.7511205673217773,0.3158722519874573,-0.7290999293327332,0.7187696695327759,0.09846954792737961,-0.06735057383775711,0.7165604829788208,-0.730293869972229,0.4473201036453247,-0.27151209115982056,-0.6971480846405029,0.7360773086547852,0.819558322429657,0.4984433054924011,0.05300116539001465,-0.6597640514373779,0.7849202156066895,0.6896201372146606,0.11731931567192078,-0.5380218029022217,0.18895208835601807,-0.18693888187408447,0.357051283121109,0.05440644919872284,0.042556408792734146,-0.04341210797429085,0.0,-0.04367709159851074,-0.031455427408218384,0.24731603264808655,-0.062861368060112,-0.4265706539154053,0.32981523871421814,-0.021271884441375732,0.15228557586669922,0.1818728893995285,0.4162319302558899,-0.22432318329811096,0.7156463861465454,-0.13709741830825806,0.7237883806228638,-0.5489991903305054,0.47034209966659546,-0.04692812263965607,0.7690137028694153,0.40263476967811584,-0.4405142068862915,0.016018997877836227,-0.04845477640628815,0.037553105503320694 编写训练脚本(作业发起方) 作业发起方还需要编写联邦学习训练脚本,其中需要用户自行实现读取数据、训练模型、评估模型、获取评估指标的逻辑。计算节点会将数据集配置文件中的path属性作为参数传递给训练脚本。 JobParam属性如下: class JobParam: """训练脚本参数 """ # 作业id job_id = '' # 当前轮数 round = 0 # 迭代次数 epoch = 0 # 模型文件路径 model_file = '' # 数据集路径 dataset_path = '' # 是否仅做评估 eval_only = False # 权重文件 weights_file = '' # 输出路径 output = '' # 其他参数json字符串 param = '' 鸢尾花的训练脚本iris_train.py样例如下: # -*- coding: utf-8 -*- import getopt import sys import keras import horizontal.horizontallearning as hl def train(): # 解析命令行输入 jobParam = JobParam() jobParam.parse_from_command_line() job_type = 'evaluation' if jobParam.eval_only else 'training' print(f"Starting round {jobParam.round} {job_type}") # 加载模型,设置初始权重参数 model = keras.models.load_model(jobParam.model_file) hl.set_model_weights(model, jobParam.weights_file) # 加载数据、训练、评估 -- 用户自己实现 print(f"Load data {jobParam.dataset_path}") train_x, test_x, train_y, test_y, class_dict = load_data(jobParam.dataset_path) if not jobParam.eval_only: b_size = 1 model.fit(train_x, train_y, batch_size=b_size, epochs=jobParam.epoch, shuffle=True, verbose=1) print(f"Training job [{jobParam.job_id}] finished") eval = model.evaluate(test_x, test_y, verbose=0) print("Evaluation on test data: loss = %0.6f accuracy = %0.2f%% \n" % (eval[0], eval[1] * 100)) # 结果以json格式保存 -- 用户读取评估指标 result = {} result['loss'] = eval[0] result['accuracy'] = eval[1] # 生成结果文件 hl.save_train_result(jobParam, model, result) # 读取 CS V数据集,并拆分为训练集和测试集 # 该函数的传入参数为CSV_FILE_PATH: csv文件路径 def load_data(CSV_FILE_PATH): import pandas as pd from sklearn.model_selection import train_test_split from sklearn.preprocessing import LabelBinarizer # 读取目录数据集,读取目录下所有CSV文件 if os.path.isdir(CSV_FILE_PATH): print(f'read file folder [{CSV_FILE_PATH}]') all_csv_path = glob.glob(os.path.join(CSV_FILE_PATH, '*.csv')) all_csv_path.sort() csv_list = [] for csv_path in all_csv_path: csv_list.append(pd.read_csv(csv_path)) IRIS = pd.concat(csv_list) # 读取CSV文件 else: IRIS = pd.read_csv(CSV_FILE_PATH) target_var = 'class' # 目标变量 # 数据集的特征 features = list(IRIS.columns) features.remove(target_var) # 目标变量的类别 Class = IRIS[target_var].unique() # 目标变量的类别字典 Class_dict = dict(zip(Class, range(len(Class)))) # 增加一列target, 将目标变量进行编码 IRIS['target'] = IRIS[target_var].apply(lambda x: Class_dict[x]) # 对目标变量进行0-1编码(One-hot Encoding) lb = LabelBinarizer() lb.fit(list(Class_dict.values())) transformed_labels = lb.transform(IRIS['target']) y_bin_labels = [] # 对多分类进行0-1编码的变量 for i in range(transformed_labels.shape[1]): y_bin_labels.append('y' + str(i)) IRIS['y' + str(i)] = transformed_labels[:, i] # 将数据集分为训练集和测试集 train_x, test_x, train_y, test_y = train_test_split(IRIS[features], IRIS[y_bin_labels], train_size=0.7, test_size=0.3, random_state=0) return train_x, test_x, train_y, test_y, Class_dict class JobParam: """训练脚本参数 """ # required parameters job_id = '' round = 0 epoch = 0 model_file = '' dataset_path = '' eval_only = False # optional parameters weights_file = '' output = '' param = '' def parse_from_command_line(self): """从命令行中解析作业参数 """ opts, args = getopt.getopt(sys.argv[1:], 'hn:w:', ['round=', 'epoch=', 'model_file=', 'eval_only', 'dataset_path=', 'weights_file=', 'output=', 'param=', 'job_id=']) for key, value in opts: if key in ['--round']: self.round = int(value) if key in ['--epoch']: self.epoch = int(value) if key in ['--model_file']: self.model_file = value if key in ['--eval_only']: self.eval_only = True if key in ['--dataset_path']: self.dataset_path = value if key in ['--weights_file']: self.weights_file = value if key in ['--output']: self.output = value if key in ['--param']: self.param = value if key in ['--job_id']: self.job_id = value if __name__ == '__main__': train()
  • 使用限制 用户在IoT 物联网平台 开发或使用时有以下技术规格限制,如果限制数量不能满足您的业务需求,请提交工单说明您的需求。 表1 资源约束 分类 对象 描述 限制 实例管理 基础版实例 同一个区域下,单个华为云账号可开通的实例数量。 1个。2023年1月1日之后如需开通基础版请提交工单说明诉求,建议优先选用标准版或企业版。 标准版实例 单个标准版实例可购买单元数量,详情请参考标准版实例。 100个 企业版实例 企业版支持的VPC网段,详情请参考购买实例约束说明。 当前VPC支持三个网段10.0.0.0/8~24、172.16.0.0/12~24和192.168.0.0/16~24。 子网络中可用的地址数量,详情请参考购买实例约束说明。 10个 资源空间管理 资源空间 单个IoTDA实例支持的资源空间数量。 10个 设备接入 MQTT MQTT协议标准。 支持MQTT v3.1/v3.1.1/v5.0协议版本,不支持协议中的QoS2、will、retain msg。 MQTT协议支持的安全等级。 支持TLS1.1、TLSV1.2、TLSV1.3。 MQTT连接心跳时间。设备端连接心跳设置,请参见建立连接。 30至1200秒,推荐设置为120秒。设置的心跳时间不在此区间内,服务器会拒绝连接。 最大超时时间=心跳时间*1.5,超过最大超时时间未收到设备消息,服务器会自动断开连接。 同一时间内,单个设备允许和IoTDA建立连接的数量。 1个 MQTT自定义Topic支持的最大长度。 128字节 MQTT单条发布消息最大长度(超过此大小的发布请求将被直接拒绝)。 1MB 单个MQTT连接的最大订阅数量。 100个 单个MQTT连接最大带宽。 1MB/s 单个MQTT连接每秒最大上行消息数量。 50条 单个IoTDA实例设备每秒最大新建连接请求数量。 基础版100 标准版请参考标准版规格 企业版请参考企业版规格 单个IoTDA实例设备侧每秒最大上行的请求数量(单消息payload平均为512字节)。 基础版500 标准版请参考标准版规格 企业版请参考企业版规格 CoAP/LwM2M 支持的CoAP协议版本。 支持RFC7252标准3 支持的LWM2M协议版本。 支持1.0.2版本 LwM2M/CoAP使用的传输层协议。 使用UDP协议 CoAP支持的安全等级。 采用DTLS v1.2保证通道安全 支持CoAP消息包大小。 1KB 单设备每分钟消息数。 300条 HTTP 支持的HTTP协议版本。 HTTP/1.0 ,HTTP/1.1 支持的TLS版本。 TLS1.1,TLSV1.2 支持的body体最大消息大小。 1MB 设备管理 产品 单个资源空间下产品数量。 1,000个 单个产品下服务能力JSON大小。 500KB 单个产品下服务数量。 500个 单个服务能力下属性/事件/命令数量。 500个 自定义topic 单个产品自定义topic。 50个 基础版设备数 同时在线设备数。 50,000个 最大注册设备数。 50,000个 标准版设备数 单个标准版支持的同时在线设备数=每单元支持的同时在线设备数×单元个数。 10,000个/单元 单个标准版支持的最大注册设备数为同时在线设备数的20倍。 200,000个 企业版设备数 单个企业版实例支持的同时在线设备数、最大注册设备数按照其选定的企业版规格而定,最小规格为10万同时在线设备数,200万最大注册设备数。 企业版请参考企业版规格 设备 单个网关设备下最多可添加的子设备数量。 50,000个 网关结构层次最大深度。 2级 设备标签 单个设备支持设置的标签数量。 10个 静态群组 单个群组层次结构的最大深度。 5级 单资源空间最大群组数。 1,000个 单个群组内最多可添加的设备数量。 20,000个 单个设备最多可以被添加的群组数量。 10个 动态群组 账号下单实例下最多可创建的动态群组数量 10个 首次创建动态群组,规则最多允许匹配的设备数量(增量加入群组的设备无限制) 10000个 批量任务 单次批量注册最多的设备数量。 100,000个 编解码 单个产品可携带的编解码插件数量。 1个 离线上传的编解码插件包大小。 4MB 编解码脚本最大长度。 1MB 单次调用编解码请求的超时时间。 5s 设备联动规则 单个IoTDA实例下最多可添加的规则数量,云端规则和端侧规则数量单独计算。 基础版、标准版20个 企业版200个 单个规则最多支持设置动作数量。 10个 单个IoTDA实例下每秒可执行动作数。 基础版、标准版10个 企业版100个 单个IoTDA实例支持同时状态持续时长任务数。 基础版、标准版100个 企业版1000个 批量任务 单个资源空间下最多同时处理的批量任务数量。 10个 批量任务文件最大限制。 2MB 批量任务文件最大行数。 100,000行 单个IoTDA实例下支持的批量任务文件最大个数。 10个 OTA升级 单个升级包大小。 升级包上传到IoTDA限制为20MB,升级包上传到OBS存储不限制升级包大小。 单个资源空间支持上传升级包的个数。 200个 单个资源空间上传最大文件大小。 文件上传到IoTDA限制为500MB,文件上传到OBS不限制文件大小。 单次批量任务最多可以升级的设备数量。 100000个 单个资源空间下最多可以同时处理的批量任务数量。 10个 自注册模板 账号下单实例下最多可创建的自注册模板数量 10个 消息通信 同步命令 同步命令设备响应时间。 20秒 设备同步命令最大消息大小。 256KB 设备消息 设备下发消息老化时长。 24小时 设备下发消息最大消息大小。 256KB 单个设备下发消息缓存数量。 20个 设备属性 网关上报子设备属性时一次最大可上报子设备数量。 100个 异步命令 设备异步命令老化时长。 48小时 设备异步命令最大消息大小。 256KB 设备异步命令缓存数量。 20个 设备影子 设备影子期望值文档大小限制 64KB 设备影子上报值文档大小限制 64KB 设备订阅策略 单个设备或产品最多绑定策略数量 5个 一个租户最大策略数量 50个 最大策略文档大小 10KB 一条策略最大文档数目 10条 消息流转 转发规则、转发动作 单个IoTDA实例允许配置规则数量。 100个 单规则允许的最大动作数量。 10个 转发规则中select参数长度限制。 0.5KB 转发规则中where参数长度限制。 0.5KB 消息流转缓存策略 消息缓存大小。 1GB 消息缓存时间。 24小时 AMQP AMQP协议。 支持AMQP1.0协议版本 支持的TLS版本。 TLS1.2版本 单个IoTDA实例允许配置的队列数量。 100个 单连接监听的队列数量。 10个 单个IoTDA实例连接数量。 32个 证书管理 证书配置 单个IoTDA实例支持的设备CA证书数量。 100个 单个IoTDA实例支持的应用CA证书数量。 10个 应用侧API使用限制 单个账号调用单个API的每秒最大次数,具体API无特殊说明的,默认限制100/s。单个账号调用API的每秒最大次数:基础版、标准版:100/s、企业版请参考企业版规格。
  • 企业版规格 企业版规格如下表所示。 表3 企业版规格 实例规格 应用侧API调用频率配额限制(次/秒) 设备连接请求(次/秒) NB-IoT场景约束限制(次/秒) 实例类型 消息上下行TPS 同时在线设备数 总调用次数 下发设备消息 下发设备命令 查询设备影子数据 查询设备 MQTT/HTTP连接请求 NB设备消息上报 NB设备命令下发 企业版 1,000 10万-20万-50万-100万-200万-500万 200 100 50 100 50 500 100 50 企业版 2,000 10万-20万-50万-100万-200万-500万 400 200 100 200 100 500 200 100 企业版 5,000 10万-20万-50万-100万-200万-500万 800 400 200 400 200 1000 500 200 企业版 10,000 10万-20万-50万-100万-200万-500万 1600 800 400 800 400 1000 1000 400 企业版 20,000 10万-20万-50万-100万-200万-500万 3200 1600 800 1600 800 2000 2000 800 企业版 50,000 10万-20万-50万-100万-200万-500万 6000 3200 1600 3200 1600 3000 5000 1600 每秒钟服务端订阅推送和云服务产品数据流转消息条数的总和不超过设备消息上报并发上限,如有超过,需选购更高TPS的规格; 实例消息数超出上下行消息TPS规格后,超出的消息会被丢弃。 用于计算每秒设备上报消息数(TPS并发上限)的最大单消息大小为 4 KB,超过4KB的消息计算为新的一条或多条; 设备连接请求的最大并发能力是指系统全部资源独占用于建链处理时的能力,在有其他业务并行处理时(如消息上报)能力达不到最大值,但至少会保证20%的并发处理能力; 除上表所列的规格和配额限制外,其他企业版实例对于API的各项默认配额或限制,与基础版一致,请参考使用限制; 若上述规格或配额限制不能满足您的业务需求(比如您有海量NB-IoT场景诉求,需要更高的并发处理能力),请提交工单说明您的需求。
  • 标准版规格 标准版实例规格=实例单元类型*单个实例可购买的单元数 实例单元类型 同时在线设备数 每日消息数上限 消息上下行TPS 单个实例可购买单元数 免费单元S0 1,000个 10,000条 10TPS 1个 微频单元ST 10,000个*购买单元数量 400,000条*购买单元数量 10TPS*购买单元数量 1-100个 低频单元S1 10,000个*购买单元数量 4,000,000条*购买单元数量 200TPS*购买单元数量 1-100个 中频单元S2 10,000个*购买单元数量 40,000,000条*购买单元数量 1,000TPS*购买单元数量 1-100个 高频单元S3 10,000个*购买单元数量 150,000,000条*购买单元数量 3,000TPS*购买单元数量 1-100个 支持可注册设备数为在线设备数的20倍,覆盖设备全生命周期。 单个实例的消息上下行TPS峰值最高到10万TPS。比如实例包含100个S3,但TPS峰值最高只能到10万TPS; 微频单元数量少于10个时,消息上下行TPS为100TPS; 单个实例每秒最大建立请求连接数量为100*购买单元数量(最高3,000),同时不超过所购买实例规格的TPS数。 计算实例每日消息数上限的消息包括:设备和平台间的上行和下行消息,应用服务器调用平台API发送的消息和平台向服务器推送的消息,以及使用规则引擎转发到其他 华为云产品 的消息(当低于设备上报消息数时免费赠送,超过部分算入消息数,例如:1、上报100万条,流转110万条,消息数按110万条计算。2、上报100万条,流转90万条,消息数按100万条计算); 实例上下行消息TPS峰值:每秒设备上报到平台的消息和平台发送给设备的消息总和;纳入TPS峰值计算的最大单消息大小为 4 KB,超过4KB的消息计算为新的一条或多条; 实例消息数超出上下行消息TPS规格后,超出的消息会被丢弃。 除上表所列的实例规格和配额限制外,其他标准版实例对于API的各项默认配额或限制,请参考使用限制; 若上述规格或配额限制不能满足您的业务需求,请提交工单说明您的需求。
  • 基础版、标准版和企业版的对比 设备接入服务 (IoTDA)提供基础版(共享实例)、标准版(标准实例)和企业版(专享实例)三种实例类型。开通设备接入服务后,默认开通基础版,按需付费使用,标准版和企业版需要您购买对应实例。详细差异请参考下表。 设备接入服务(IoTDA)计划于2023年1月1日起将原基础版升级为标准版免费单元,原基础版用户可继续使用基础版,新用户可直接使用标准版免费单元,支持平滑扩容至更高规格以及更多的服务组合能力。原基础版用户如需迁移至标准版可参考迁移指导。 表1 基础版、标准版与企业版实例差异 差异项 基础版(2023年1月1日前) 标准版 企业版 开通区域 华北-北京四 华北-北京四/华东-上海一/华南-广州/华南-广州-友好用户环境/中国-香港/亚太-新加坡/亚太-曼谷/非洲-约翰内斯堡 华北-北京四/华东-上海一/华南-广州 计费方式 按消息数使用量计费 按实例规格与使用时长计费 按实例规格与使用时长计费 计算隔离 多个租户共享统一的计算资源 实例隔离 完全独享 网络访问 提供统一的公网域名和IP对接 每个实例提供独立的公网接入域名,非独享设备连接层资源。 实例运行在租户独立的VPC中, 独立分配设备侧和应用侧对接的公网和私网IP,可按需放开公网或私网访问。 该实例独享设备连接层资源,使用独立服务器处理设备连接,进一步提高连接可靠性。 数据隔离 租户隔离,各个租户之间数据不共享 实例隔离,租户可购买多个实例,各个实例资源数据不共享 独享数据存储资源。 安全性 各租户统一的安全策略控制 实例级安全策略控制 可配置独立的安全策略和网络ACL规则,可自定义设备及应用服务器对接的协议端口,可仅开放VPC私网IP对接方式。 功能 基础的设备接入和设备管理功能 基础版能力基础上,提供更多扩展功能 基础的设备接入和设备管理功能,及扩展功能 支持更多的服务组合能力 支持行业解决方案集成适配 标准版能力基础上,支持更多独立VPC部署特有的功能(如私网专线对接等)。 性能规格 多租户共享平台整体并发能力 平台整体性能的弹性能力受限于可用资源情况 单实例可包含100个单元,最大支持10W峰值并发 可根据业务模型(每日消息总数和忙时峰值),配置更适合的实例规格 单实例支持10W并发,资源完全独占,不受其他租户影响 峰值并发可24小时全忙时运行,性能更强大 适用场景 小型企业客户,设备并发性能较低 提供灵活可配置的实例规格,适用于各类企业客户场景 中大型企业客户场景, 提供完全独享的实例,支持更高的并发能力, 具备更高的安全性和隔离性。 设备接入的基础版、标准版和企业版,它们之间在功能上的异同点如下表所示。 表2 基础版、标准版与企业版实例功能差异 特性分类 功能描述 基础版 标准版 企业版 说明 设备接入 原生协议/行业协议接入 √ √ √ - 协议插件方式接入私有协议 x x √ 支持云端加载协议插件支持私有协议接入 边云协同接入子系统 x 仅高频单元支持 √ 如园区项目中仅标准版高频单元和企业版支持通过IoT Edge接入子系统 设备接入鉴权 √ √ √ - 设备管理 设备生命周期管理 √ √ √ - 设备物模型定义 √ √ √ - 设备影子 √ √ √ - OTA升级 √ √ √ - 消息通信 双向消息透传 √ √ √ - 物模型Topic通信 √ √ √ - 数据解析转换 √ √ √ - 规则引擎 数据流转 √ √ √ 设备上报数据流转到其他云服务 规则联动 √ √ √ 设备联动规则 SQL数据流转规则 x √ √ 支持对数据先通过类SQL语句进行预处理 HTTP/AMQP订阅推送 √ √ √ - MQTT推送消息队列 x √ √ - 云服务流转 DIS 数据接入服务 √ √ √ - OBS对象存储服务 √ √ √ - LTS 云日志 服务 √ √ √ - Kafka分布式消息服务 √ √ √ - RocketMQ分布式消息服务 x √ √ - ROMA Connect应用与 数据集成平台 x x √ - FunctionGraph 函数工作流 服务 x √ √ - MRS Kafka流式集群 x x √ - MySQL数据库 x √ √ - InfluxDB 时序数据库 x √ √ - BCS 区块链服务 x x √ - MongoDB数据库 x x √ - 权限管理 子用户权限管理 √ √ √ 基于 IAM 的细粒度用户权限管理 分权分域 √ √ √ 基于资源空间的分权分域管理 公私网接入 公网接入 √ √ √ - 私网接入/专线对接 x x √ - 自定义接入端口 x x √ - IPV6接入 x √ √ 暂不支持NB-IoT设备,支持region为华北-北京四、华东-上海一、华南-广州。 性能规格 设备消息上报并发能力 单账号最大100TPS 单实例最大10万TPS 单实例最大10万TPS 可购买多个企业版实例,支持百万级并发 设备命令下发能力 单账号最大50TPS 单实例最大6000TPS 单实例最大6000TPS 有更高需求,请提交工单说明您的诉求
  • 企业SSO登录 当企业拥有自己的鉴权系统,并想用自己的鉴权系统登录华为云会议,可以使用企业SSO登录,配置后企业成员就可以使用企业内部统一鉴权登录华为云会议客户端。 企业SSO登录的配置操作详情请参考:如何配置企业SSO登录? 打开华为云会议移动端。 单击“SSO”打开“SSO登录”界面。 输入企业域名,或单击“我不知道企业域名”后输入 企业邮箱 。 单击“登录”跳转至鉴权页面。 输入账号和密码,企业鉴权通过后进入移动端首页。 图1 企业SSO登录 父主题: 移动端
  • 会中聊天 会议中单击会控栏的“聊天”打开界面右侧的聊天面板,可支持文字聊天。 主持人可以设置允许自由聊天、仅允许公开聊天、仅允许私聊主持人、全员禁言。 允许自由聊天:与会者可以私聊所有与会者 仅允许公开聊天:只有主持人和联席主持人可以私聊 仅允许私聊主持人:与会者只能私聊主持人和联席主持人 全员禁言:与会者禁止聊天与私聊 与会者可通过以下方式开启私聊。 方法1:在聊天框中单击与会者用户名私聊 方法2:在与会者列表中选择与会者私聊 方法3:在聊天下拉框中选中与会者私聊
  • 多画面设置 与会者会中可根据需要切换画面布局,会议观看体验更好。 目前仅Windows客户端支持设置悬浮视图和并排视图。 当会议中有2名或以上与会者时,会中界面右上角将显示“画面布局”按钮。 与会者切换画面视图时,对其他与会者无影响。 会中主持人广播多画面时,其他与会者桌面端将显示主持人设置的多画面,无法切换画面布局。如图1所示。 主持人广播多画面操作请参考广播多画面。 系统默认声控模式,声音大的会场高亮或者大画面显示该会场。 演讲者视图中上方的小窗口按照入会时间排序。 与会者进入会中界面,单击右上角“画面布局”即可进行选择。 画廊视图:单个屏幕同时显示多个与会者,如图2所示。 画中画视图:大画面显示最大发言人视频画面或共享内容,小画面显示自己的视频画面,如图3所示。 演讲者视图:大画面显示最大发言人视频画面或共享内容,界面上方小窗口显示其他与会者视频画面,如图4所示。 悬浮视图:大画面显示最大发言人视频画面或共享内容,右侧悬浮列表显示其他与会者视频画面,如图5所示。 并排视图: 左侧画面显示最大发言人或共享画面,右侧画面显示其他与会者画面,如图6所示。 按住左右画面中间的按钮并拖拽,可调整两侧画面大小。 图1 广播多画面 图2 画廊视图 图3 画中画视图 图4 演讲者视图 图5 悬浮视图 图6 并排视图
  • 禁止截屏 禁止截屏功能暂未开放,如需体验请发送邮件至“hcmeeting@huaweicloud.com”或联系华为销售申请开通。 仅9.7.7及以上版本的客户端支持。 目前Windows、Mac、Android端预约会议时可设置禁止截屏。 设置禁止截屏后,新版本的Windows、Mac、Android、SmartRooms系列(含IdeaHub2代系列)会中禁止截屏,通过SIP、H323方式入会的硬件终端无法禁止截屏,较低版本、iOS等其他端则禁止入会。 可防止截取会中共享内容,部分设备可防止截取会中画面和共享内容。 在对安全性要求较高的会议场景,预约会议时可设置禁止截屏。 设置后新版本的Windows、Mac、Android、SmartRooms系列(含IdeaHub2代系列)会中无法截屏。 登录华为云会议桌面端后,在首页单击“预约会议”。 在“预约会议”弹窗中勾选“禁止截屏”,阅读提示后单击“确定”。 图18 禁止截屏 单击“预约会议”。
  • 画面优先显示 优先显示画面最多可设置49个。 设置后生效范围为:演讲者视图小画面、画廊视图、画中画视图小画面、悬浮视图小画面、共享状态下的悬浮窗口小画面。 当会中已广播多画面时此功能不生效。 参会人数较多,需要置顶部分与会者的小画面时,主持人可在会控助手将对应用户的小画面设置为优先显示,并可拖拽排序或删除优先显示的与会者。详细介绍请参考画面优先显示。 设置后桌面端会中的小画面将优先显示,小画面的左下角将显示置顶图标。 图14 画面优先显示
  • 注意事项 付费企业已支持1080P超高清视频功能,企业管理员可登录华为云会议管理平台启用1080P超高清视频功能,详细操作请参见开启1080P超高清视频。 开启后,企业下的用户在华为云会议管理平台创建会议时,可开启该次会议的1080P超高清视频。详细操作请参见立即/预约会议。 当主持人创建会议时开启了当前会议的1080P超高清视频,与会者硬件设备满足的情况下即可生效。 企业内部入会最高支持1080P;跨企业和匿名企业入会最高支持720P。 开启功能后,客户端最高支持1080P,30帧的编码发送/接收;不开启功能,客户端最高支持720P,30帧的编码发送/接收。 会议中使用1080P超清视频功能时需要全屏/窗口最大化,单个大画面支持1080P(画廊视图下多个画面时不支持)。
  • 多画面设置 多画面设置,面对面交互更灵活。与会者可以左右滑动自由选择画面布局: “画中画视图”聚焦对方,一对一沟通。 “画廊视图”全场互动,气氛更活跃。 当会议中有2名或以上参会者时,您才能切换到画廊视图。 iOS客户端画廊视图支持3x3布局(仅iPhone 7及以上设备支持)。 画廊视图可根据参会人数,自动显示布局,安卓pad显示视频画面情况如下: 2GHz,4GB内存以上机型支持3x3布局,其他机型仅支持2x2布局。 搭载麒麟990芯片/麒麟9000芯片/麒麟9000E芯片的机型支持4x4布局。
  • 禁止截屏 禁止截屏功能暂未开放,如需体验请发送邮件至“hcmeeting@huaweicloud.com”或联系华为销售申请开通。 仅9.7.7及以上版本的客户端支持。 目前Windows、Mac、Android端预约会议时可设置禁止截屏。 设置禁止截屏后,新版本的Windows、Mac、Android、SmartRooms系列(含IdeaHub2代系列)会中禁止截屏,通过SIP、H323方式入会的硬件终端无法禁止截屏,较低版本、iOS等其他端则禁止入会。 可防止截取会中共享内容,部分设备可防止截取会中画面和共享内容。 在对安全性要求较高的会议场景,预约会议时可设置禁止截屏。 设置后新版本的Windows、Mac、Android、SmartRooms系列(含IdeaHub2代系列)会中无法截屏。 登录华为云会议Android端后,在首页单击“预约会议”。 在“预约会议”界面中单击“信息安全”,将“禁止截屏”右侧的按钮切换至开启状态。 图6 信息安全 单击“预约会议”。
  • 移动端推荐配置如下: 操作系统要求如下所示: 类型 最低要求 建议配置 安卓客户端 Android 6.0/Harmony 2.0 Android 10.0及以上/Harmony 2.0及以上 iOS客户端 iOS 11 iOS 14 及以上版本 硬件要求如下所示: 类型 最低要求 建议配置 安卓客户端 CPU:双核 1.5GHz 内存:2G 硬盘可用空间:800M CPU: 四核2GHz及以上 内存: 6G及以上 硬盘可用空间: 1G iOS客户端 CPU:- 内存:1G 硬盘可用空间:500M CPU:- 内存:3G 硬盘可用空间:1GB
  • 电脑推荐配置 操作系统要求如下所示: 类型 最低要求 建议配置 Windows客户端 Windows 7及以上版本(32位或64位) Windows 10及以上版本(32位或64位) Mac客户端 macOS 10.12及以上版本 macOS 10.15及以上版本 硬件要求如下所示: 类型 最低要求 建议配置 Windows客户端 CPU:i5 双核 内存:4G 硬盘可用空间:3G CPU: Intel i7 四核及以上 内存: 8GB及以上 硬盘可用空间: 8GB及以上 Mac客户端 CPU:4核 内存:4G 硬盘可用空间:3G CPU:4核 内存:4G 硬盘可用空间:8GB及以上 最低要求的设备,将受限于CPU处理性能,视频清晰度最高只能达到360P。
  • URI PUT /v1.0/cdn/domains/{domain_id}/private-bucket-access 表1 路径参数 参数 是否必选 参数类型 描述 domain_id 是 String 加速域名id。 表2 Query参数 参数 是否必选 参数类型 描述 enterprise_project_id 否 String 当用户开启企业项目功能时,该参数生效,表示修改当前企业项目下加速域名的配置,"all"代表所有项目。注意:当使用子账号调用接口时,该参数必传。 您可以通过调用企业项目管理服务(EPS)的查询企业项目列表接口(ListEnterpriseProject)查询企业项目id。
  • URI GET /v1.0/cdn/historytasks/{history_tasks_id}/detail 表1 路径参数 参数 是否必选 参数类型 描述 history_tasks_id 是 String 刷新任务ID。 表2 Query参数 参数 是否必选 参数类型 描述 enterprise_project_id 否 String 当用户开启企业项目功能时,该参数生效,表示查询资源所属项目,"all"表示所有项目。注意:当使用子账号调用接口时,该参数必传。 您可以通过调用企业项目管理服务(EPS)的查询企业项目列表接口(ListEnterpriseProject)查询企业项目id。 page_size 否 Integer 刷新预热的urls所显示单页最大数量,取值范围为1-10000。page_size和page_number必须同时传值。默认值30。 page_number 否 Integer 刷新预热的urls当前查询为第几页,取值范围为1-65535。默认值1。 status 否 String url的状态 processing 处理中,succeed 完成,failed 失败,waiting 等待,refreshing 刷新中,preheating 预热中。 url 否 String url的地址。 create_time 否 Long 刷新预热任务的创建时间。不传参默认为查询7天内的任务。最长可查询15天内数据。
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 id String 任务id。 task_type String 任务类型,refresh:刷新任务;preheating:预热任务。 status String 任务执行结果,task_done:成功,task_inprocess:处理中。 urls Array of UrlObject objects 本次提交的url列表。 create_time Long 创建时间。 processing Integer 处理中的url个数。 succeed Integer 成功处理的url个数。 failed Integer 处理失败的url个数。 total Integer 历史任务的url个数。 file_type String 文件类型,file:文件;directory:目录,默认是文件file。 表5 UrlObject 参数 参数类型 描述 id String url的id url String url的地址。 status String url的状态 processing 处理中,succeed 完成,failed 失败,waiting 等待,refreshing 刷新中,preheating 预热中。 create_time Long url创建时间,相对于UTC 1970-01-01到当前时间相隔的毫秒数。 task_id String 任务id。 task_type String 任务的类型, 其值可以为REFRESH:刷新任务、PREHEATING:预热任务、REFRESH_AFTER_PREHEATING:预热后刷新
共100000条