华为云用户手册

  • 单流任务管理接口 表6 单流任务管理接口 接口 说明 POST /v2/apps/{app_id}/individual-stream-jobs 启动单流任务 GET /v2/apps/{app_id}/individual-stream-jobs/{job_id} 查询单流任务状态 DELETE /v2/apps/{app_id}/individual-stream-jobs/{job_id} 停止单流任务 PUT /v2/apps/{app_id}/individual-stream-jobs/{job_id} 更新单流任务
  • 录制规则管理接口 表2 录制规则管理接口 接口 说明 POST /v2/apps/{app_id}/record-rules 创建或更新录制规则 GET /v2/apps/{app_id}/record-rules 查询录制规则列表 GET /v2/apps/{app_id}/record-rules/{rule_id} 查询录制规则 PUT /v2/apps/{app_id}/record-rules/{rule_id} 更新录制规则 DELETE /v2/apps/{app_id}/record-rules/{rule_id} 删除录制规则
  • 错误码 当您调用API时,如果遇到“APIGW”开头的错误码,请参见API网关错误码进行处理。 状态码 错误码 错误信息 描述 处理措施 400 RTC.00001001 OperationUnauthorized: get DomainID fail please check X-Auth-Token or AK/SK SparkRTC服务收到的token中解析不到domainID,无法确认租户身份 检查调用API时使用的账号是否正确:如使用了错误的token 400 RTC.00001002 MalformedRequestBody: json parsing failed 请求体(json)解析错误 查看API文档,检查参数值填写是否符合规则 400 RTC.00001003 InvalidParameterValue 参数校验异常 查看API文档,检查参数值填写是否符合规则 400 RTC.00001004 InvalidParameterCombination 字段的组合错误 查看API文档,检查参数值填写是否符合规则 400 RTC.00001005 MissingParameter 参数未携带 查看API文档,检查参数值填写是否符合规则 400 RTC.00001006 JobRunning: job exists and is not over 任务存在且并未结束,外部携带的job_uniq_id重复 等待任务结束 400 RTC.00001007 JobExceed 任务数超过限制 请提交工单申请提升任务数上限 400 RTC.00001009 JobDone: task canceled or completed 任务已取消或者已完成 请检查携带参数是否正确 400 RTC.00001010 LayoutTemplateNotExist: layout template not exist under your app 合流的模板在该appid下不存在 请携带的布局模板ID是否正确 400 RTC.00001012 UnsupportRegion: rtc does not provide services in the region SparkRTC增值业务在该region不提供服务 请填写正确的region 400 RTC.00001013 RuleForbidenDelete: rule is associated with backup rule 该录制规则被关联了备份规则,禁止删除 请先提交工单申请解除备份规则的关联关系 400 RTC.00001016 AppDeactivation: app is stopped 应用已经被停止 请确认使用的RTC服务是否欠费 400 RTC.00001017 AppsExceed: app num exceed 可创建的应用数已达上限,默认最大支持20个应用 请提交工单申请提升应用数目上限 400 RTC.00001018 UrlUnaviailable: callback url is unaviailable URL地址不通,如租户设置的回调地址等 请携带正确的回调URL地址 400 RTC.00001019 RecordRuleExist: record rule of the app exists 录制规则已经存在 需要删除相关录制规则再进行后续操作 400 RTC.00001020 AppExist: app exists 此应用名已存在 账号下已存在此应用名的app,修改app_name创建新的应用 400 RTC.00001021 NoPermission: policy doesn't allow action to be performed 没有权限调用此API 请检查生成鉴权信息的账号是否配置了访问此API的权限 400 RTC.00001022 job is not initialized 任务未完成初始化,无法进行操作 请等待任务初始化完成 404 RTC.00001008 JobNotExist: job does not exist 任务不存在 请检查携带参数是否正确 404 RTC.00001011 RecordRuleNotExist: record rule not exist under your app 录制规则在该appid下不存在 请检查携带参数是否正确 404 RTC.00001014 BucketNotExisted: bucket does not exist 桶不存在 请检查携带参数是否正确 404 RTC.00001015 AppNotExist:app does not exist under your account 应用ID在该账号下不存在 请检查调用API时使用的账号是否正确;如使用了错误的token。 500 RTC.00002001 InternalError.GeneratorIDError ID生成组件故障 请提交工单联系运维人员处理 500 RTC.00002002 InternalError.DbErr 数据库操作故障 请提交工单联系运维人员处理 500 RTC.00002003 InternalError.Transcode4xxError 媒体处理组件输入故障 请提交工单联系运维人员处理 500 RTC.00002004 InternalError.Transcode5xxError 媒体处理组件内部故障 请提交工单联系运维人员处理 500 RTC.00002005 InternalError.Live4xxError 录制组件输入故障 请提交工单联系运维人员处理 500 RTC.00002006 InternalError.Live5xxError 录制组件内部故障 请提交工单联系运维人员处理 父主题: 附录
  • Token认证 Token的有效期为24小时,需要使用一个Token鉴权时,可以先缓存起来,避免频繁调用。 Token在计算机系统中代表令牌(临时)的意思,拥有Token就代表拥有某种权限。Token认证就是在调用API的时候将Token加到请求消息头中,从而通过身份认证,获得操作API的权限。Token可通过调用获取用户Token接口获取。 调用本服务API需要项目级别的Token,即调用获取用户Token接口时,请求body中auth.scope的取值需要选择project,如下所示。 { "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "name": "username", //IAM用户名 "password": "********", //IAM用户密码 "domain": { "name": "domainname" //IAM用户所属账号名 } } } }, "scope": { "project": { "name": "xxxxxxxx" //项目名称 } } } } 获取Token后,再调用其他接口时,您需要在请求消息头中添加“X-Auth-Token”,其值即为Token。例如Token值为“ABCDEFJ....”,则调用接口时将“X-Auth-Token: ABCDEFJ....”加到请求消息头即可,如下所示。 1 2 3 POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/projects Content-Type: application/json X-Auth-Token: ABCDEFJ.... 您还可以通过这个视频教程了解如何使用Token认证:https://bbs.huaweicloud.com/videos/101333。
  • AK/SK认证 AK/SK签名认证方式仅支持消息体大小在12MB以内,12MB以上的请求请使用Token认证。 AK/SK认证就是使用AK/SK对请求进行签名,在请求时将签名信息添加到消息头,从而通过身份认证。 AK(Access Key ID):访问密钥ID。与私有访问密钥关联的唯一标识符;访问密钥ID和私有访问密钥一起使用,对请求进行加密签名。 SK(Secret Access Key):私有访问密钥。与访问密钥ID结合使用,对请求进行加密签名,可标识发送方,并防止请求被修改。 使用AK/SK认证时,您可以基于签名算法使用AK/SK对请求进行签名,也可以使用专门的签名SDK对请求进行签名。详细的签名方法和SDK使用方法请参见API签名指南。 签名SDK只提供签名功能,与服务提供的SDK不同,使用时请注意。
  • 约束与限制 华为云实时音视频服务设置了API流控,避免出现因短时间内重复调用API,服务中断的情况。API流控说明如表1所示。 表1 API流控说明 接口分类 接口名称 接口流控 应用管理 创建应用 查询应用列表 查询单个应用 删除应用 启用应用 停用应用 60次/分钟 录制规则管理 创建或更新录制规则 查询录制规则列表 查询录制规则 更新录制规则 删除录制规则 自动录制配置 更新自动录制配置 查询自动录制配置 应用回调管理 RTC增值(录制)事件回调配置 查询增值(录制)事件回调配置 合流任务管理 启动合流任务 查询合流任务 修改合流任务 停止合流任务 10次/秒 单流任务管理 启动单流任务 查询单流任务状态 停止单流任务 更新单流任务 房间管理 踢除在线用户 解散房间 60次/分钟 OBS桶管理 查询OBS桶列表 查询OBS桶下对象列表 OBS桶授权及取消授权 2次/秒 数据统计分析 查询房间列表 查询用户列表 查询实时规模 查询实时规模分布 查询实时质量数据 查询实时网络 查询用量 查询历史规模 查询历史质量 查询用户通话指标 查询详情事件 查询指定项目用户异常体验事件 查询用户异常体验事件 查询异常事件用户分布 30次/分钟 父主题: 使用前必读
  • 概述 华为云实时音视频服务(SparkRTC)凭借在视频业务领域长期技术积累,快速为行业提供高并发、低延迟、高清流畅、安全可靠的全场景、全互动、全实时的音视频服务,适用于在线教育、云会议、社交文娱等场景。 您可以使用本文档提供的API对华为云实时音视频服务进行相关操作,如应用管理、合流任务管理等。支持的全部操作请参见API概览。 在调用华为云实时音视频服务的API之前,请确保已经充分了解华为云实时音视频服务的相关概念,详细信息请参见产品介绍。 父主题: 使用前必读
  • 加密过程与加密套件 OBS Java SDK 提供了两个不同的加密套件生成器,分别是基于 AES-CTR 加密方法的 CTRCipherGenerator 与基于 RSA + AES-CTR 加密的 CtrRSACipherGenerator。 使用 CTRCipherGenerator 上传对象时,用户需要提供一个用来加密数据的数据密钥,SDK 将会针对每个对象随机生成一个初始值,并使用数据密钥与初始值加密对象,加密完成后将加密后文件上传至 OBS,并将对应的初始值存储至对象元数据中。下载该对象时,用户需要提供对应的数据密钥,SDK 会自动获取保存在对象元数据中的初始值,使用数据密钥与初始值解密对象并返回。下载时如若提供了与加密时不同的数据密钥,SDK 也将返回不可用的解密后文件。 使用 CtrRSACipherGenerator 上传对象时,用户需要提供一个 RSA 公钥,SDK 会针对每个对象随机生成一个数据密钥和初始值,并使用数据密钥与初始值加密对象,加密完成后将加密后文件上传至 OBS,随后会使用 RSA 密钥加密数据密钥,并将加密后的数据密钥与初始值存储至对象元数据中。下载该对象时,用户需要提供对应的 RSA 私钥,SDK 会自动获取保存在对象元数据中的数据密钥与初始值,并使用私钥解密数据密钥,如若提供的私钥与上传时使用的密钥不匹配,将会抛出异常。解密成功后,SDK 将会使用解密后的数据密钥与初始值解密对象并返回。
  • 元数据中的解密信息 SDK 会将解密所需的必要信息存至对象的对象自定义元数据,并且不会有其他备份,如若您对这些数据进行了修改,将会造成数据无法解密,需要保存的信息及其含义如下表: 表2 参数名 约束 说明 encrypted-algorithm 必选 加密套件的信息 encrypted-object-key 必选(使用 RSA 加密套件时) 使用 RSA 密钥加密后的数据密钥 encrypted-start 必选 加密该对象所使用的初始值经 Base64 编码后的字符串 master-key-info 可选 加密密钥的信息 plaintext-sha256 可选 加密前对象的 sha256,流式上传不计算sha256 plaintext-content-length 可选 加密前对象的长度,流对象在上传之前无法获取长度 encrypted-sha256 可选 加密后对象的 sha256,流式上传不计算sha256
  • 代码示例 您可以通过ObsClient.getObjectAcl获取对象的访问权限。以下代码展示如何获取对象访问权限: 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 import com.obs.services.ObsClient; import com.obs.services.exception.ObsException; import com.obs.services.model.AccessControlList; public class SetObjectAcl001 { public static void main(String[] args) { // 您可以通过环境变量获取访问密钥AK/SK,也可以使用其他外部引入方式传入。如果使用硬编码可能会存在泄露风险。 // 您可以登录访问管理控制台获取访问密钥AK/SK String ak = System.getenv("ACCESS_KEY_ID"); String sk = System.getenv("SECRET_ACCESS_KEY_ID"); // 【可选】如果使用临时AK/SK和SecurityToken访问OBS,同样建议您尽量避免使用硬编码,以降低信息泄露风险。 // 您可以通过环境变量获取访问密钥AK/SK/SecurityToken,也可以使用其他外部引入方式传入。 String securityToken = System.getenv("SECURITY_TOKEN"); // endpoint填写桶所在的endpoint, 此处以华北-北京四为例,其他地区请按实际情况填写。 // 您可以通过环境变量获取endPoint,也可以使用其他外部引入方式传入。 //String endPoint = System.getenv("ENDPOINT"); String endPoint = "https://obs.cn-north-4.myhuaweicloud.com"; // 创建ObsClient实例 try (ObsClient obsClient = new ObsClient(ak, sk, securityToken, endPoint)) { // 为对象设置预定义访问策略 // 设置对象访问权限为私有读写 obsClient.setObjectAcl("examplebucket", "objectname", AccessControlList.REST_CANNED_PRIVATE); System.out.println("setObjectAcl successfully"); } catch (ObsException e) { System.out.println("setObjectAcl failed"); // 请求失败,打印http状态码 System.out.println("HTTP Code:" + e.getResponseCode()); // 请求失败,打印服务端错误码 System.out.println("Error Code:" + e.getErrorCode()); // 请求失败,打印详细错误信息 System.out.println("Error Message:" + e.getErrorMessage()); // 请求失败,打印请求id System.out.println("Request ID:" + e.getErrorRequestId()); System.out.println("Host ID:" + e.getErrorHostId()); e.printStackTrace(); } catch (Exception e) { System.out.println("setObjectAcl failed"); // 其他异常信息打印 e.printStackTrace(); } } }
  • 接口约束 您必须是桶拥有者或拥有获取对象ACL的权限,才能获取对象ACL。建议使用IAM或桶策略进行授权,如果使用IAM则需授予obs:object:GetObjectAcl权限,如果使用桶策略则需授予GetObjectAcl权限。相关授权方式介绍可参见OBS权限控制概述,配置方式详见使用IAM自定义策略、配置对象策略。 OBS支持的region以及region与endPoint的对应关系,详细信息请参见地区与终端节点。 用户必须拥有对指定对象读ACP(access control policy)的权限,才能执行获取对象ACL的操作。
  • 请求参数说明 表1 请求参数列表 参数名称 参数类型 是否必选 描述 request GetObjectAclRequest 必选 参数解释: 获取对象ACL请求参数,详见GetObjectAclRequest。 表2 GetObjectAclRequest 参数名称 参数类型 是否必选 描述 Bucket string 必选 参数解释: 桶名。 约束限制: 桶的名字需全局唯一,不能与已有的任何桶名称重复,包括其他用户创建的桶。 桶命名规则如下: 3~63个字符,数字或字母开头,支持小写字母、数字、“-”、“.”。 禁止使用IP地址。 禁止以“-”或“.”开头及结尾。 禁止两个“.”相邻(如:“my..bucket”)。 禁止“.”和“-”相邻(如:“my-.bucket”和“my.-bucket”)。 同一用户在同一个区域多次创建同名桶不会报错,创建的桶属性以第一次请求为准。 默认取值: 无 Key string 必选 参数解释: 对象名。对象名是对象在存储桶中的唯一标识。对象名是对象在桶中的完整路径,路径中不包含桶名。 例如,您对象的访问地址为examplebucket.obs.cn-north-4.myhuaweicloud.com/folder/test.txt 中,对象名为folder/test.txt。 取值范围: 长度大于0且不超过1024的字符串。 默认取值: 无 VersionId string 可选 参数解释: 对象的版本号。 取值范围: 长度为32的字符串。 默认取值: 无
  • 设置对象存储类别 您可以通过ObjectMetadata.setObjectStorageClass来设置对象存储类别。以下代码展示如何设置对象存储类别: // Endpoint以北京四为例,其他地区请按实际情况填写。 String endPoint = "https://obs.cn-north-4.myhuaweicloud.com"; // 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全;本示例以ak和sk保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量ACCESS_KEY_ID和SECRET_ACCESS_KEY_ID。 // 您可以登录访问管理控制台获取访问密钥AK/SK,获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.html String ak = System.getenv("ACCESS_KEY_ID"); String sk = System.getenv("SECRET_ACCESS_KEY_ID"); // 创建ObsClient实例 ObsClient obsClient = new ObsClient(ak, sk, endPoint); ObjectMetadata metadata = new ObjectMetadata(); // 设置对象存储类别为低频访问存储 metadata.setObjectStorageClass(StorageClassEnum.WARM); obsClient.putObject("bucketname", "objectname", new File("localfile"), metadata);
  • 设置对象自定义元数据 您可以通过ObjectMetadata.addUserMetadata来设置对象自定义元数据。以下代码展示如何设置对象自定义元数据: // Endpoint以北京四为例,其他地区请按实际情况填写。 String endPoint = "https://obs.cn-north-4.myhuaweicloud.com"; // 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全;本示例以ak和sk保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量ACCESS_KEY_ID和SECRET_ACCESS_KEY_ID。 // 您可以登录访问管理控制台获取访问密钥AK/SK,获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.html String ak = System.getenv("ACCESS_KEY_ID"); String sk = System.getenv("SECRET_ACCESS_KEY_ID"); // 创建ObsClient实例 ObsClient obsClient = new ObsClient(ak, sk, endPoint); ObjectMetadata metadata = new ObjectMetadata(); metadata.addUserMetadata("property1", "property-value1"); metadata.getMetadata().put("property2", "property-value2"); obsClient.putObject("bucketname", "objectname", new File("localfile"), metadata);
  • 列举已上传的段 您可使用ObsClient.listParts列举出某一分段上传任务所有已经上传成功的段。 该接口可设置的参数如下: 参数 作用 OBS Java SDK对应方法 bucketName 分段上传任务所属的桶名。 ListPartsRequest.setBucketName key 分段上传任务所属的对象名。 ListPartsRequest.setKey uploadId 分段上传任务全局唯一标识,从ObsClient.initiateMultipartUpload返回的结果获取。 ListPartsRequest.setUploadId maxParts 表示列举已上传的段返回结果最大段数目,即分页时每一页中段数目。 ListPartsRequest.setMaxParts partNumberMarker 表示待列出段的起始位置,只有Part Number大于该参数的段会被列出。 ListPartsRequest.setPartNumberMarker encodingType 对响应中的 key 进行指定类型的编码。如果 key 包含 xml 1.0 标准不支持的控制字符,可通过设置 encodingType 对响应中的 key 进行编码。 类型:字符串。 默认值:无。 可选值:url。 ListPartsRequest.setEncodingType 简单列举 // Endpoint以北京四为例,其他地区请按实际情况填写。 String endPoint = "https://obs.cn-north-4.myhuaweicloud.com"; // 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全;本示例以ak和sk保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量ACCESS_KEY_ID和SECRET_ACCESS_KEY_ID。 // 您可以登录访问管理控制台获取访问密钥AK/SK,获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.html String ak = System.getenv("ACCESS_KEY_ID"); String sk = System.getenv("SECRET_ACCESS_KEY_ID"); String uploadId = "upload id from initiateMultipartUpload"; // 创建ObsClient实例 ObsClient obsClient = new ObsClient(ak, sk, endPoint); //列举已上传的段,其中uploadId来自于initiateMultipartUpload ListPartsRequest request = new ListPartsRequest("bucketname", "objectname"); request.setUploadId(uploadId); ListPartsResult result = obsClient.listParts(request); for(Multipart part : result.getMultipartList()){ // 分段号,上传时候指定 System.out.println("\t"+part.getPartNumber()); // 段数据大小 System.out.println("\t"+part.getSize()); // 分段的ETag值 System.out.println("\t"+part.getEtag()); // 段的最后上传时间 System.out.println("\t"+part.getLastModified()); } 列举段至多返回1000个段信息,如果指定的Upload ID包含的段数量大于1000,则返回结果中ListPartsResult.isTruncated为true表明本次没有返回全部段,并可通过ListPartsResult.getNextPartNumberMarker获取下次列举的起始位置。 如果想获取指定Upload ID包含的所有分段,可以采用分页列举的方式。 列举所有段 由于ObsClient.listParts只能列举至多1000个段,如果段数量大于1000,列举所有分段请参考如下示例: // Endpoint以北京四为例,其他地区请按实际情况填写。 String endPoint = "https://obs.cn-north-4.myhuaweicloud.com"; // 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全;本示例以ak和sk保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量ACCESS_KEY_ID和SECRET_ACCESS_KEY_ID。 // 您可以登录访问管理控制台获取访问密钥AK/SK,获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.html String ak = System.getenv("ACCESS_KEY_ID"); String sk = System.getenv("SECRET_ACCESS_KEY_ID"); String uploadId = "upload id from initiateMultipartUpload"; // 创建ObsClient实例 ObsClient obsClient = new ObsClient(ak, sk, endPoint); // 列举所有已上传的段,其中uploadId来自于initiateMultipartUpload ListPartsRequest request = new ListPartsRequest("bucketname", "objectname"); request.setUploadId(uploadId); ListPartsResult result; do{ result = obsClient.listParts(request); for(Multipart part : result.getMultipartList()){ // 分段号,上传时候指定 System.out.println("\t"+part.getPartNumber()); // 段数据大小 System.out.println("\t"+part.getSize()); // 分段的ETag值 System.out.println("\t"+part.getEtag()); // 段的最后上传时间 System.out.println("\t"+part.getLastModified()); } request.setPartNumberMarker(Integer.parseInt(result.getNextPartNumberMarker())); }while(result.isTruncated());
  • 列举分段上传任务 您可以通过ObsClient.listMultipartUploads列举分段上传任务。列举分段上传任务可设置的参数如下: 参数 作用 OBS Java SDK对应方法 bucketName 桶名。 ListMultipartUploadsRequest.setBucketName prefix 限定返回的分段上传任务中的对象名必须带有prefix前缀。 ListMultipartUploadsRequest.setPrefix delimiter 用于对分段上传任务中的对象名进行分组的字符。对于对象名中包含delimiter的任务,其对象名(如果请求中指定了prefix,则此处的对象名需要去掉prefix)中从首字符至第一个delimiter之间的字符串将作为一个分组并作为commonPrefix返回。 ListMultipartUploadsRequest.setDelimiter maxUploads 列举分段上传任务的最大数目,取值范围为1~1000,当超出范围时,按照默认的1000进行处理。 ListMultipartUploadsRequest.setMaxUploads keyMarker 表示列举时返回指定的keyMarker之后的分段上传任务。 ListMultipartUploadsRequest.setKeyMarker uploadIdMarker 只有与keyMarker参数一起使用时才有意义,用于指定返回结果的起始位置,即列举时返回指定keyMarker的uploadIdMarker之后的分段上传任务。 ListMultipartUploadsRequest.setUploadIdMarker encodingType 对响应中的部分元素进行指定类型的编码。如果 delimiter、keyMarker、prefix、nextKeyMarker 和 key 包含 xml 1.0 标准不支持的控制字符,可通过设置 encodingType 对响应中的 delimiter、keyMarker、prefix(包括 commonPrefixes 中的 prefix)、nextKeyMarker 和 key 进行编码。 类型:字符串。 可选值:url。 ListMultipartUploadsRequest.setEncodingType 简单列举分段上传任务 // Endpoint以北京四为例,其他地区请按实际情况填写。 String endPoint = "https://obs.cn-north-4.myhuaweicloud.com"; // 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全;本示例以ak和sk保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量ACCESS_KEY_ID和SECRET_ACCESS_KEY_ID。 // 您可以登录访问管理控制台获取访问密钥AK/SK,获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.html String ak = System.getenv("ACCESS_KEY_ID"); String sk = System.getenv("SECRET_ACCESS_KEY_ID"); String uploadId = "upload id from initiateMultipartUpload"; // 创建ObsClient实例 ObsClient obsClient = new ObsClient(ak, sk, endPoint); ListMultipartUploadsRequest request = new ListMultipartUploadsRequest("bucketname"); MultipartUploadListing result = obsClient.listMultipartUploads(request); for(MultipartUpload upload : result.getMultipartTaskList()){ System.out.println("\t" + upload.getUploadId()); System.out.println("\t" + upload.getObjectKey()); System.out.println("\t" + upload.getInitiatedDate()); } 列举分段上传任务至多返回1000个任务信息,如果指定的桶包含的分段上传任务数量大于1000,则MultipartUploadListing.isTruncated为true表明本次没有返回全部结果,并可通过MultipartUploadListing.getNextKeyMarker和MultipartUploadListing.getNextUploadIdMarker获取下次列举的起点。 如果想获取指定桶包含的所有分段上传任务,可以采用分页列举的方式。 分页列举全部分段上传任务 // Endpoint以北京四为例,其他地区请按实际情况填写。 String endPoint = "https://obs.cn-north-4.myhuaweicloud.com"; // 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全;本示例以ak和sk保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量ACCESS_KEY_ID和SECRET_ACCESS_KEY_ID。 // 您可以登录访问管理控制台获取访问密钥AK/SK,获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.html String ak = System.getenv("ACCESS_KEY_ID"); String sk = System.getenv("SECRET_ACCESS_KEY_ID"); String uploadId = "upload id from initiateMultipartUpload"; // 创建ObsClient实例 ObsClient obsClient = new ObsClient(ak, sk, endPoint); ListMultipartUploadsRequest request = new ListMultipartUploadsRequest("bucketname"); MultipartUploadListing result; do{ result = obsClient.listMultipartUploads(request); for(MultipartUpload upload : result.getMultipartTaskList()){ System.out.println("\t" + upload.getUploadId()); System.out.println("\t" + upload.getObjectKey()); System.out.println("\t" + upload.getInitiatedDate()); } request.setKeyMarker(result.getNextKeyMarker()); request.setUploadIdMarker(result.getNextUploadIdMarker()); }while(result.isTruncated());
  • 初始化分段上传任务 使用分段上传方式传输数据前,必须先通知OBS初始化一个分段上传任务。该操作会返回一个OBS服务端创建的全局唯一标识(Upload ID),用于标识本次分段上传任务。您可以根据这个唯一标识来发起相关的操作,如取消分段上传任务、列举分段上传任务、列举已上传的段等。 您可以通过ObsClient.initiateMultipartUpload初始化一个分段上传任务: 该接口可设置的参数如下: 参数 作用 OBS Java SDK对应方法 bucketName 桶名。 initiateMultipartUpload.setBucketName objectKey 设置分段上传任务所属的对象名 initiateMultipartUpload.setObjectKey expires 设置分段上传任务最终生成对象的过期时间,正整数。 initiateMultipartUpload.setExpires metadata 设置对象属性,支持content-type,用户自定义元数据 initiateMultipartUpload.setMetadata isEncodeHeaders 是否自动编码请求头 initiateMultipartUpload.setIsEncodeHeaders encodingType 对响应中的 objectKey 进行指定类型的编码。如果 objectKey 包含xml 1.0 标准不支持的控制字符,可通过设置 encodingType 对响应中的 objectKey 进行编码。 类型:字符串。 可选值:url initiateMultipartUpload.setEncodingType // Endpoint以北京四为例,其他地区请按实际情况填写。 String endPoint = "https://obs.cn-north-4.myhuaweicloud.com"; // 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全;本示例以ak和sk保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量ACCESS_KEY_ID和SECRET_ACCESS_KEY_ID。 // 您可以登录访问管理控制台获取访问密钥AK/SK,获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.html String ak = System.getenv("ACCESS_KEY_ID"); String sk = System.getenv("SECRET_ACCESS_KEY_ID"); // 创建ObsClient实例 ObsClient obsClient = new ObsClient(ak, sk, endPoint); InitiateMultipartUploadRequest request = new InitiateMultipartUploadRequest("bucketname", "objectname"); ObjectMetadata metadata = new ObjectMetadata(); metadata.addUserMetadata("property", "property-value"); metadata.setContentType("text/plain"); request.setMetadata(metadata); InitiateMultipartUploadResult result = obsClient.initiateMultipartUpload(request); String uploadId = result.getUploadId(); System.out.println("\t" + uploadId); 用InitiateMultipartUploadRequest指定上传对象的名称和所属桶。 在InitiateMultipartUploadRequest中,您可以设置对象MIME类型、对象存储类别、对象自定义元数据等对象属性。 InitiateMultipartUploadResult.getUploadId返回分段上传任务的全局唯一标识(Upload ID),在后面的操作中将用到它。 由于 HTTP 编码规范限制,无法发送非 ASCII 码字符,SDK 会在发送请求时对您头域中的中文汉字进行 url 编码,发送编码后数据。如您设置的值 content-disposition 为 ”attachment; filename="中文.txt"”,则对象元数据中存储的信息为”attachment; filename="%E4%B8%AD%E6%96%87.txt"”。使用浏览器访问时浏览器将会自动解码。 如若不需要 SDK 帮您编码,可以调用 InitiateMultipartUploadRequest.setIsEncodeHeaders(false) 关闭自动编码。
  • 取消分段上传任务 分段上传任务可以被取消,当一个分段上传任务被取消后,就不能再使用其Upload ID做任何操作,已经上传段也会被OBS删除。 采用分段上传方式上传对象过程中或上传对象失败后会在桶内产生段,这些段会占用您的存储空间,您可以通过取消该分段上传任务来清理掉不需要的段,节约存储空间。 您可以通过ObsClient.abortMultipartUpload取消分段上传任务: // Endpoint以北京四为例,其他地区请按实际情况填写。 String endPoint = "https://obs.cn-north-4.myhuaweicloud.com"; // 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全;本示例以ak和sk保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量ACCESS_KEY_ID和SECRET_ACCESS_KEY_ID。 // 您可以登录访问管理控制台获取访问密钥AK/SK,获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.html String ak = System.getenv("ACCESS_KEY_ID"); String sk = System.getenv("SECRET_ACCESS_KEY_ID"); String uploadId = "upload id from initiateMultipartUpload"; // 创建ObsClient实例 ObsClient obsClient = new ObsClient(ak, sk, endPoint); AbortMultipartUploadRequest request = new AbortMultipartUploadRequest("bucketname", "objectname", uploadId); obsClient.abortMultipartUpload(request);
  • 免Agent方式审计数据库 部分数据库类型及版本支持免安装Agent方式,如表1所示。 表1 支持免Agent安装的关系型数据库 数据库类型 支持的版本 GaussDB for MySQL 默认都支持 RDS for SQLServer (华为云审计实例:23.02.27.182148 及其之后的版本支持) 默认都支持 RDS for MySQL 5.6(5.6.51.1及以上版本) 5.7(5.7.29.2及以上版本) 8.0(8.0.20.3及以上版本) GaussDB(DWS) 8.2.0.100及以上版本 PostgreSQL (华为云审计实例:23.04.17.123301 及其之后的版本支持) 14(14.4及以上版本) 13(13.6及以上版本) 12(12.10及上版本) 11(11.15及以上版本) 9.6(9.6.24及以上版本) 9.5(9.5.25及以上版本) RDS for MariaDB 默认都支持 免安装Agent模式配置简单、易操作,但较之安装了Agent的DBSS实例,支持的功能上存在如下差异: 统计会话数量时,无法统计成功登录、与失败登录的会话个数。 无法获取数据库访问时客户端的端口号。 由于GaussDB(DWS)服务具有日志审计开关的权限控制策略,只有华为云账号或拥有Security Administrator权限的用户才能开启或者关闭DWS数据库审计开关。 GaussDB默认不开启ddl,用户需要参照GaussDB用户手册操作开启如下配置: audit_system_object = 130023423,操作请参考:GaussDB开发指南。 datastyle=ISO,YMD,保证日期格式为yyyy-MM-dd HH:mm:ss+Z。 图1 免Agent安装流程 表2 快速使用数据库安全审计操作步骤 步骤 配置操作 说明 1 添加数据库 购买数据库安全审计后,您需要将待审计的数据库添加到数据库安全审计实例。 申请数据库安全审计后,您需要将待审计的数据库添加到数据库安全审计实例。 2 开启数据库安全审计 您需要开启数据库安全审计功能,将添加的数据库连接到数据库安全审计实例,才能使用数据库安全审计功能。 3 查看审计结果 数据库安全审计默认提供一条“全审计规则”的审计范围,可以对连接数据库安全审计实例的所有数据库进行审计。开启数据库安全审计后,您可以在数据库安全审计界面查看被添加的数据库的审计结果。 须知: 您可以根据业务需求设置数据库审计规则。有关配置审计规则的详细操作,请参见配置审计规则。
  • 背景信息 数据库安全审计支持对华为云上的ECS/BMS自建数据库和RDS关系型数据库进行审计。 数据库安全审计不支持跨区域(Region)使用。待审计的数据库必须和购买申请的数据库安全审计实例在同一区域。 数据库开启SSL时,将不能使用数据库安全审计功能。如果您需要使用数据库安全审计功能,请关闭数据库的SSL。关闭数据库SSL的详细操作,请参见如何关闭数据库SSL?。 有关审计数据的保存说明,请参见数据库安全审计的审计数据可以保存多久?。
  • 免Agent方式审计数据库 部分数据库类型及版本支持免安装Agent方式,如表1所示。 表1 支持免Agent安装的关系型数据库 数据库类型 支持的版本 GaussDB for MySQL 默认都支持 RDS for SQLServer (华为云审计实例:23.02.27.182148 及其之后的版本支持) 默认都支持 RDS for MySQL 5.6(5.6.51.1及以上版本) 5.7(5.7.29.2及以上版本) 8.0(8.0.20.3及以上版本) GaussDB(DWS) 8.2.0.100及以上版本 PostgreSQL (华为云审计实例:23.04.17.123301 及其之后的版本支持) 14(14.4及以上版本) 13(13.6及以上版本) 12(12.10及上版本) 11(11.15及以上版本) 9.6(9.6.24及以上版本) 9.5(9.5.25及以上版本) RDS for MariaDB 默认都支持 免安装Agent模式配置简单、易操作,但较之安装了Agent的DBSS实例,支持的功能上存在如下差异: 统计会话数量时,无法统计成功登录、与失败登录的会话个数。 无法获取数据库访问时客户端的端口号。 由于GaussDB(DWS)服务具有日志审计开关的权限控制策略,只有华为云账号或拥有Security Administrator权限的用户才能开启或者关闭DWS数据库审计开关。 GaussDB默认不开启ddl,用户需要参照GaussDB用户手册操作开启如下配置: audit_system_object = 130023423,操作请参考:GaussDB开发指南。 datastyle=ISO,YMD,保证日期格式为yyyy-MM-dd HH:mm:ss+Z。 图1 免Agent安装流程 表2 快速使用数据库安全审计操作步骤 步骤 配置操作 说明 1 添加数据库 购买数据库安全审计后,您需要将待审计的数据库添加到数据库安全审计实例。 申请数据库安全审计后,您需要将待审计的数据库添加到数据库安全审计实例。 2 开启数据库安全审计 您需要开启数据库安全审计功能,将添加的数据库连接到数据库安全审计实例,才能使用数据库安全审计功能。 3 查看审计结果 数据库安全审计默认提供一条“全审计规则”的审计范围,可以对连接数据库安全审计实例的所有数据库进行审计。开启数据库安全审计后,您可以在数据库安全审计界面查看被添加的数据库的审计结果。 须知: 您可以根据业务需求设置数据库审计规则。有关配置审计规则的详细操作,请参见配置审计规则。
  • 通过Agent方式审计数据库 非表1中的数据库类型及版本,需采用安装Agent方式开启DBSS服务。 图2 快速使用数据库安全审计流程图 表3 快速使用数据库安全审计操作步骤 步骤 配置操作 说明 1 添加数据库 购买数据库安全审计后,您需要将待审计的数据库添加到数据库安全审计实例。 2 添加Agent 添加的数据库开启审计功能后,您需要为添加的数据库选择Agent的添加方式。 数据库安全审计支持对华为云上的ECS/BMS自建数据库和RDS关系型数据库进行审计,请根据您在华为云上实际部署的数据库选择Agent添加方式。 3 添加安全组规则 Agent添加完成后,您还需要为数据库安全审计实例所在的安全组添加入方向规则TCP协议(8000端口)和UDP协议(7000-7100端口),使Agent与审计实例之间的网络连通,数据库安全审计才能对添加的数据库进行审计。 4 安装Agent(Linux操作系统) 安全组规则添加完成后,您还需要下载Agent,并根据Agent的添加方式在数据库端或应用端安装Agent。 5 开启数据库安全审计 Agent安装成功后,您还需要开启数据库安全审计功能,将添加的数据库连接到数据库安全审计实例,才能使用数据库安全审计功能。 6 查看审计结果 数据库安全审计默认提供一条“全审计规则”的审计范围,可以对连接数据库安全审计实例的所有数据库进行审计。开启数据库安全审计后,您可以在数据库安全审计界面查看被添加的数据库的审计结果。 须知: 您可以根据业务需求设置数据库审计规则。有关配置审计规则的详细操作,请参见配置审计规则。
  • 背景信息 数据库安全审计支持对华为云上的ECS/BMS自建数据库和RDS关系型数据库进行审计。 数据库安全审计不支持跨区域(Region)使用。待审计的数据库必须和购买申请的数据库安全审计实例在同一区域。 数据库开启SSL时,将不能使用数据库安全审计功能。如果您需要使用数据库安全审计功能,请关闭数据库的SSL。关闭数据库SSL的详细操作,请参见如何关闭数据库SSL?。 有关审计数据的保存说明,请参见数据库安全审计的审计数据可以保存多久?。
  • 响应示例 状态码: 200 OK { "tasks" : [ { "sync_task_id" : "d18befdd-eb82-41f3-8019-bbb593d74a3e", "src_cloud_type" : "HuaweiCloud", "src_region" : "cn-north-7", "src_bucket" : "oms-sdk-test-src", "create_time" : 1700639560751, "last_start_time" : 1700639560751, "dst_bucket" : "oms-sdk-test-dst", "dst_region" : "cn-north-7", "description" : "sync task test", "status" : "SYNCHRONIZING", "enable_kms" : false, "enable_metadata_migration" : false, "enable_restore" : false, "app_id" : null, "source_cdn" : null, "object_overwrite_mode" : "SIZE_LAST_MODIFIED_COMPARISON_OVERWRITE", "dst_storage_policy" : null, "consistency_check" : "size_last_modified" } ], "count" : 1 }
  • URI GET /v2/{project_id}/sync-tasks 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID 最小长度:1 最大长度:1024 表2 Query参数 参数 是否必选 参数类型 描述 limit 否 Integer 查询返回同步任务列表当前页面的数量,默认查询10条。 最多返回100条迁移任务信息。 最小值:1 最大值:100 缺省值:10 offset 否 Integer 起始的任务序号,默认为0。 取值大于等于0,取值为0时从第一条开始查询。 最小值:0 最大值:10000 缺省值:0 status 否 String 同步任务状态(无该参数时代表查询所有状态的任务): SYNCHRONIZING:同步中 STOPPED:已停止 最小长度:0 最大长度:255
  • 响应示例 状态码: 200 OK { "sync_task_id" : "d18befdd-eb82-41f3-8019-bbb593d74a3e", "src_cloud_type" : "HuaweiCloud", "src_region" : "cn-north-7", "src_bucket" : "oms-sdk-test-src", "create_time" : 1700639560751, "last_start_time" : 1700639560751, "dst_bucket" : "oms-sdk-test-dst", "dst_region" : "cn-north-7", "description" : "sync task test", "status" : "SYNCHRONIZING", "enable_kms" : false, "enable_metadata_migration" : false, "enable_restore" : false, "app_id" : null, "monthly_acceptance_request" : 11, "monthly_success_object" : 0, "monthly_failure_object" : 11, "monthly_skip_object" : 0, "monthly_size" : 0, "object_overwrite_mode" : "SIZE_LAST_MODIFIED_COMPARISON_OVERWRITE", "dst_storage_policy" : null, "consistency_check" : "size_last_modified" }
  • URI GET /v2/{project_id}/sync-tasks/{sync_task_id} 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID 最小长度:1 最大长度:1024 sync_task_id 是 String 同步任务ID。 最小长度:0 最大长度:255 表2 Query参数 参数 是否必选 参数类型 描述 query_time 是 String 查询同步任务详情的时间(毫秒),依据该值返回所在月份的统计数据。 最小长度:1 最大长度:1024
  • 镜像一:conda3-cuda10.2-cudnn7-ubuntu18.04 表1 conda3-cuda10.2-cudnn7-ubuntu18.04镜像介绍 AI引擎框架 是否使用 GPU (CUDA 版本) URL 包含的依赖项 无 是 (cuda 10.2) swr.{region_id}.myhuaweicloud.com/atelier/user_defined_base:cuda_10.2-ubuntu_18.04-x86_64-20221008154718-2b3e39c 例如: 华北-北京四 swr.cn-north-4.myhuaweicloud.com/atelier/user_defined_base:cuda_10.2-ubuntu_18.04-x86_64-20221008154718-2b3e39c 华东-上海一 swr.cn-east-3.myhuaweicloud.com/atelier/user_defined_base:cuda_10.2-ubuntu_18.04-x86_64-20221008154718-2b3e39c 华南-广州 swr.cn-south-1.myhuaweicloud.com/atelier/user_defined_base:cuda_10.2-ubuntu_18.04-x86_64-20221008154718-2b3e39c PyPI 程序包 Ubuntu 软件包 ipykernel 6.7.0 ipython 7.34.0 jupyter-client 7.3.4 ma-cau 1.1.3 ma-cau-adapter 1.1.3 ma-cli 1.1.5 matplotlib 3.5.1 modelarts 1.4.11 moxing-framework 2.1.0.5d9c87c8 numpy 1.21.6 pandas 1.3.5 pillow 9.2.0 pip 20.3.3 psutil 5.9.1 PyYAML 6.0 scipy 1.7.3 tornado 6.2 automake build-essential ca-certificates cmake cpp curl g++ gcc gfortran grep libcudnn7 libcudnn7-dev nginx python3 rpm tar unzip vim wget zip
  • 镜像二:conda3-ubuntu18.04 表2 conda3-ubuntu18.04镜像介绍 AI引擎框架 是否使用 GPU (CUDA 版本) URL 包含的依赖项 无 否 swr.{region_id}.myhuaweicloud.com/atelier/user_defined_base:ubuntu_18.04-x86_64-20221008154718-2b3e39c 例如: 华北-北京四 swr.cn-north-4.myhuaweicloud.com/atelier/user_defined_base:ubuntu_18.04-x86_64-20221008154718-2b3e39c 华东-上海一 swr.cn-east-3.myhuaweicloud.com/atelier/user_defined_base:ubuntu_18.04-x86_64-20221008154718-2b3e39c 华南-广州 swr.cn-south-1.myhuaweicloud.com/atelier/user_defined_base:ubuntu_18.04-x86_64-20221008154718-2b3e39c PyPI 程序包 Ubuntu 软件包 ipykernel 6.7.0 ipython 7.34.0 jupyter-client 7.3.4 ma-cau 1.1.3 ma-cau-adapter 1.1.3 ma-cli 1.1.5 matplotlib 3.5.1 modelarts 1.4.11 moxing-framework 2.1.0.5d9c87c8 numpy 1.21.6 pandas 1.3.5 pillow 9.2.0 pip 20.3.3 psutil 5.9.1 PyYAML 6.0 scipy 1.7.3 tornado 6.2 automake build-essential ca-certificates cmake cpp curl g++ gcc gfortran grep nginx python3 rpm tar unzip vim wget zip
  • 镜像一:pytorch1.8-cuda10.2-cudnn7-ubuntu18.04 表1 pytorch1.8-cuda10.2-cudnn7-ubuntu18.04镜像介绍 AI引擎框架 是否使用 GPU (CUDA 版本) URL 包含的依赖项 Pytorch 1.8 是 (cuda 10.2) swr.{region_id}.myhuaweicloud.com/atelier/pytorch_1_8:pytorch_1.8.0-cuda_10.2-py_3.7-ubuntu_18.04-x86_64-20220926104358-041ba2e 例如: 华北-北京四 swr.cn-north-4.myhuaweicloud.com/atelier/pytorch_1_8:pytorch_1.8.0-cuda_10.2-py_3.7-ubuntu_18.04-x86_64-20220926104358-041ba2e 华东-上海一 swr.cn-east-3.myhuaweicloud.com/atelier/pytorch_1_8:pytorch_1.8.0-cuda_10.2-py_3.7-ubuntu_18.04-x86_64-20220926104358-041ba2e 华南-广州 swr.cn-south-1.myhuaweicloud.com/atelier/pytorch_1_8:pytorch_1.8.0-cuda_10.2-py_3.7-ubuntu_18.04-x86_64-20220926104358-041ba2e PyPI 程序包 Ubuntu 软件包 torch 1.8.0 torchvision 0.9.0 ipykernel 6.7.0 ipython 7.34.0 jupyter-client 7.3.4 ma-cau 1.1.6 ma-cau-adapter 1.1.3 ma-cli 1.2.2 matplotlib 3.5.1 modelarts 1.4.11 moxing-framework 2.1.0.5d9c87c8 numpy 1.19.5 opencv-python 4.1.2.30 pandas 1.1.5 pillow 9.2.0 pip 22.1.2 psutil 5.8.0 PyYAML 5.1 scipy 1.5.2 scikit-learn 0.22.1 tornado 6.2 tensorboard 2.1.1 automake build-essential ca-certificates cmake cpp curl ffmpeg g++ gcc gfortran git git-lfs grep libcudnn7 libcudnn7-dev libjpeg-dev:amd64 libjpeg8-dev:amd64 openssh-client openssh-server nginx pandoc python3 rpm screen tar tmux unzip vim wget zip
共100000条