云服务器内容精选

  • 参数说明 表2 参数说明 参数名 参数类型 说明 partitionId String 分区ID。 说明: 请根据上传流式数据的执行结果,控制台的返回信息字段,例如 “partitionId [shardId-0000000000]”进行定义。 startingSequenceNumber String 序列号。序列号是每个记录的唯一标识符。序列号由DIS在数据生产者调用PutRecords操作以添加数据到DIS数据通道时DIS服务自动分配的。同一分区键的序列号通常会随时间变化增加。PutRecords请求之间的时间段越长,序列号越大。 说明: 请根据上传流式数据的执行结果,控制台的返回信息字段,例如“sequenceNumber [1]”进行定义。 cursorType String 游标类型。 AT_SEQUENCE_NUMBER:从特定序列号(即startingSequenceNumber定义的序列号)所在的记录开始读取数据。此类型为默认游标类型。 AFTER_SEQUENCE_NUMBER:从特定序列号(即startingSequenceNumber定义的序列号)后的记录开始读取数据。 TRIM_HORIZON:从最早被存储至分区的有效记录开始读取。 例如,某租户使用DIS的通道,分别上传了三条数据A1,A2,A3。N天后(设定A1已过期,A2和A3仍在有效期范围内),该租户需要下载数据,并选择了TRIM_HORIZON这种下载方式。那么用户可下载的数据将从A2开始读取。 LATEST:从分区中的最新记录开始读取,此设置可以保证你总是读到分区中最新记录。 AT_TIMESTAMP:从特定时间戳(即timestamp定义的时间戳)开始读取。
  • 背景信息 下载流式数据,需要确定从分区的什么位置开始获取(即获取游标)。确定起始位置后,再循环获取数据。 获取游标有如下五种方式: AT_SEQUENCE_NUMBER AFTER_SEQUENCE_NUMBER TRIM_HORIZON LATEST AT_TIMESTAMP 为更好理解游标类型,您需要了解如下几个基本概念。 序列号(sequenceNumber),每个记录的唯一标识符。序列号由DIS在数据生产者调用PutRecord操作以添加数据到DIS数据通道时DIS服务自动分配的。同一分区键的序列号通常会随时间变化增加。PutRecords请求之间的时间段越长,序列号越大。 每个分区的sequenceNumber从0开始持续增长,每条数据对应唯一的sequenceNumber,超过生命周期后此sequenceNumber将过期不可用。(例如上传一条数据到新分区,其sequenceNumber起始为0,上传100条之后,则最后一条的sequenceNumber为99;如超过生命周期之后,0~99的数据则不可用) 分区的数据有效范围可以通过调用describeStream(查询通道详情)接口获取,其sequenceNumberRange代表数据有效范围,第一个值为最老数据的sequenceNumber,最后一个值为下一条上传数据的sequenceNumber(最新数据的sequenceNumber为此值-1) 例如[100, 200],表示此分区总共上传了200条数据,其中第0~99条已过期,有效的最老数据为100,最新数据为199,下一条上传数据的sequenceNumber为200。
  • 检查数据示例 本章节对检查数据AK/SK方式使用SDK进行示例说明。 检查数据示例代码只需将AK/SK信息替换为实际AK/SK,代码中可以使用CheckParam类的setItemId设置数据的服务实例级唯一标识,配置完成后运行即可。 检查数据调用示例代码如下: 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.core.region.Region; import com.huaweicloud.sdk.imagesearch.v2.*; import com.huaweicloud.sdk.imagesearch.v2.model.*; /** * 检查数据 */ public class RunCheckDataSolution { 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"); String iamEndpoint = "https://iam.cn-north-4.myhuaweicloud.com"; String endpoint = "https://mms.cn-north-4.myhuaweicloud.com"; String projectId = "project_id"; // 初始化客户端 ICredential auth = new BasicCredentials() .withIamEndpoint(iamEndpoint) .withProjectId(projectId) .withAk(ak) .withSk(sk); ImageSearchClient client = ImageSearchClient.newBuilder() .withCredential(auth) // 设置region, 示例中为北京四 .withRegion(new Region("cn-north-4", endpoint)) .build(); RunCheckDataRequest request = new RunCheckDataRequest(); request.withServiceName("service_name"); CheckParam body = new CheckParam(); body.withItemId("item_id"); request.withBody(body); try { RunCheckDataResponse response = client.runCheckData(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.getRequestId()); System.out.println(e.getErrorCode()); System.out.println(e.getErrorMsg()); } } } 执行示例代码文件,控制台输出检查数据结果即表示程序执行成功。 class RunCheckDataResponse { result: success data: class CheckRestInfo { existed: true itemInfo: class ItemSource { desc: null customTags: {key=value} customNumTags: {key=1.0} keywords: null } items: null checkInfo: null } } 父主题: 使用SDK(Java)
  • 图像标签示例 本章节对图像标签AK/SK方式使用SDK进行示例说明。 图像标签示例代码只需将AK/SK信息替换为实际AK/SK,代码中可以使用ImageTaggingReq中的withUrl或withImage方法配置图像信息(image和url参数二选一),示例中以url为例配置完成后运行即可。 endpoint是华为云各服务应用区域和各服务的终端节点,详情请查看 地区和终端节点 。 图像标签调用示例代码如下: 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.image.v2.region.ImageRegion; import com.huaweicloud.sdk.image.v2.*; import com.huaweicloud.sdk.image.v2.model.*; public class RunImageTaggingSolution { 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); ImageClient client = ImageClient.newBuilder() .withCredential(auth) .withRegion(ImageRegion.valueOf("XXXX")) //此处替换为您开通服务的区域 .build(); RunImageTaggingRequest request = new RunImageTaggingRequest(); ImageTaggingReq body = new ImageTaggingReq(); body.withLimit(50); body.withThreshold(95f); body.withLanguage("zh"); body.withUrl("https://XXX.jpg"); //此处替换为公网可以访问的图片地址 request.withBody(body); try { RunImageTaggingResponse response = client.runImageTagging(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()); } } } 执行示例代码,控制台返回200即表示程序执行成功。相关参数说明请参考图像标签API。 class RunImageTaggingResponse { result: class ImageTaggingResponseResult { tags: [class ImageTaggingItemBody { confidence: 98.00 type: 树 tag: 树 i18nTag: class ImageTaggingItemBodyI18nTag { zh: 树 en: Tree } i18nType: class ImageTaggingItemBodyI18nType { zh: 树 en: Tree } instances: [] }] } } Process finished with exit code 0 父主题: 使用SDK(Java)
  • 查询Checkpoint 参考初始化DIS客户端的操作初始化一个DIS客户端实例,实例名称为dic。 其中,“streamName”的配置值要与开通DIS通道中“通道名称”的值一致,“endpoint”,“ak”,“sk”,“region”,“projectId”信息请参见获取认证信息。 1 2 3 4 5 6 7 8 9 GetCheckpointRequest getCheckpointRequest = new GetCheckpointRequest(); // 设置App名称(注: 1.3.0及以前版本使用setAppId,1.3.1及后续版本请使用setAppName getCheckpointRequest.setAppName(appName); getCheckpointRequest.setStreamName(streamName); // 分区编号 getCheckpointRequest.setPartitionId("0"); // Checkpoint类型 getCheckpointRequest.setCheckpointType(CheckpointTypeEnum.LAST_READ.name()); System.out.println("getCheckpoint: " + JsonUtils.objToJson(dic.getCheckpoint(getCheckpointRequest))); 查询Checkpoint的返回信息如下。 1 2 getCheckpoint: {"sequence_number": "10", "metadata": "metadata"} 父主题: 使用SDK(Java)