华为云用户手册

  • 代码示例 本示例展示了使用断点续传方式将examplebucket桶里的objectname对象下载到本地文件localfile中。示例代码如下: 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 50 51 52 53 54 55 56 57 import com.obs.services.ObsClient; import com.obs.services.exception.ObsException; import com.obs.services.model.DownloadFileRequest; import com.obs.services.model.DownloadFileResult; public class DownloadFile001 { 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, 此处以华北-北京四为例,其他地区请按实际情况填写。 String endPoint = "https://obs.cn-north-4.myhuaweicloud.com"; // 您可以通过环境变量获取endPoint,也可以使用其他外部引入方式传入。 //String endPoint = System.getenv("ENDPOINT"); // 创建ObsClient实例 // 使用永久AK/SK初始化客户端 ObsClient obsClient = new ObsClient(ak, sk,endPoint); // 使用临时AK/SK和SecurityToken初始化客户端 // ObsClient obsClient = new ObsClient(ak, sk, securityToken, endPoint); try { DownloadFileRequest request = new DownloadFileRequest("examplebucket", "objectname"); // 设置下载对象的本地文件路径 request.setDownloadFile("localfile"); // 设置分段下载时的最大并发数 request.setTaskNum(5); // 设置分段大小为10MB request.setPartSize(10 * 1024 * 1024); // 开启断点续传模式 request.setEnableCheckpoint(true); // 进行断点续传下载 DownloadFileResult result = obsClient.downloadFile(request); System.out.println("downloadFile successfully"); System.out.println("Etag:" + result.getObjectMetadata().getEtag()); } catch (ObsException e) { System.out.println("downloadFile 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("downloadFile failed"); // 其他异常信息打印 e.printStackTrace(); } } }
  • 功能说明 当下载大对象到本地文件时,经常出现因网络不稳定或程序崩溃导致下载失败的情况。失败后再次重新下载不仅浪费资源,而且当网络不稳定时仍然有下载失败的风险。断点续传下载接口能有效地解决此类问题引起的下载失败,其原理是将待下载的对象分成若干个分段分别下载,并实时地将每段下载结果统一记录在checkpoint文件中,仅当所有分段都下载成功时返回下载成功的结果,否则抛出异常提醒用户再次调用接口进行重新下载(重新下载时因为有checkpoint文件记录当前的下载进度,避免重新下载所有分段,从而节省资源提高效率)。 断点续传下载接口是利用范围下载(Java SDK)特性实现的,是对范围下载的封装和加强。 断点续传下载接口不仅能在失败重下时节省资源提高效率,还因其对分段进行并发下载的机制能加快下载速度,帮助用户快速完成下载业务;且其对用户透明,用户不用关心checkpoint文件的创建和删除、分段任务的切分、并发下载的实现等内部细节。
  • 接口约束 您必须是桶拥有者或拥有下载对象的权限,才能下载对象。建议使用IAM或桶策略进行授权,如果使用IAM则需授予obs:object:GetObject权限,如果使用桶策略则需授予GetObject权限。相关授权方式介绍可参见OBS权限控制概述,配置方式详见使用IAM自定义策略、配置对象策略。 OBS支持的region以及region与endPoint的对应关系,详细信息请参见地区与终端节点。
  • 接口约束 建议使用IAM或策略进行授权,如果使用IAM则需授予obs:bucket:PutAccessLabel权限。相关授权方式介绍可参见OBS权限控制概述,配置方式详见使用IAM自定义策略、配置对象策略。 OBS支持的region以及region与endPoint的对应关系,详细信息请参见地区与终端节点。 目前接口仅在并行文件系统支持,普通对象桶不支持,如何创建并行文件系统请参考创建并行文件系统(Java SDK)。 仅支持并行文件系统的目录级别的设置,并行文件系统级和文件级均不支持。 用户需要具有“PutAccessLabel”权限才能设置对象AccessLabel。
  • 代码示例 本示例用于获取examplebucket并行文件系统中的目录Dirname的accesslabel 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 50 import com.obs.services.ObsClient; import com.obs.services.exception.ObsException; import com.obs.services.model.fs.accesslabel.* public class GetAccessLabel{ 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, 此处以华北-北京四为例,其他地区请按实际情况填写。 String endPoint = "https://obs.cn-north-4.myhuaweicloud.com"; // 您可以通过环境变量获取endPoint,也可以使用其他外部引入方式传入。 //String endPoint = System.getenv("ENDPOINT"); // 创建ObsClient实例 // 使用永久AK/SK初始化客户端 ObsClient obsClient = new ObsClient(ak, sk,endPoint); // 使用临时AK/SK和SecurityToken初始化客户端 // ObsClient obsClient = new ObsClient(ak, sk, securityToken, endPoint); try { //获取目录accesslabel GetAccessLabelRequest request = new GetAccessLabelRequest(); request.setBucketName("examplebucket"); request.setDir("Dirname"); GetAccessLabelRequest result = obsClient.GetAccessLabelRequest(request); System.out.println("GetAccessLabel successfully"); System.out.println("HTTP Code: " + result.getStatusCode()); } catch (ObsException e) { System.out.println("GetAccessLabel 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("GetAccessLabel failed"); // 其他异常信息打印 e.printStackTrace(); } } }
  • 请求参数说明 表1 请求参数列表 参数名称 参数类型 是否必选 描述 request GetAccessLabelRequest 必选 参数解释: 请求参数,详见GetAccessLabelRequest。 表2 GetAccessLabelRequest 参数名称 参数类型 是否可选 描述 bucketName String 必选 参数解释: 并行文件系统名。 约束限制: 并行文件系统的名字需全局唯一,不能与已有的任何并行文件系统名称重复,包括其他用户创建的并行文件系统。 并行文件系统命名规则如下: 3~63个字符,数字或字母开头,支持小写字母、数字、“-”、“.”。 禁止使用IP地址。 禁止以“-”或“.”开头及结尾。 禁止两个“.”相邻(如:“my..bucket”)。 禁止“.”和“-”相邻(如:“my-.bucket”和“my.-bucket”)。 同一用户在同一个区域多次创建同名并行文件系统不会报错,创建的并行文件系统属性以第一次请求为准。 默认取值: 无 Dir String 必选 参数解释: 目录名。对象名是对象在存储并行文件系统中的唯一标识。目录名是并行文件系统中目录的路径,路径中不包含并行文件系统名。 例如,您对象的访问地址为examplebucket.obs.cn-north-4.myhuaweicloud.com/folder/test.txt 中,对象名为folder/test.txt。 取值范围: 长度大于0且不超过1024的字符串。 默认取值: 无
  • 接口约束 建议使用IAM或策略进行授权,如果使用IAM则需授予obs:bucket:GetAccessLabel权限。相关授权方式介绍可参见OBS权限控制概述,配置方式详见使用IAM自定义策略、配置对象策略。 OBS支持的region以及region与endPoint的对应关系,详细信息请参见地区与终端节点。 目前接口仅在并行文件系统支持,普通对象桶不支持,如何创建并行文件系统请参考创建并行文件系统(Java SDK)。 仅支持并行文件系统的目录级别的设置,并行文件系统级和文件级均不支持。
  • 方式四:自行编译 Jar 包 您可以下载Java SDK源码,然后自行编译 Jar 包。使用本方式安装SDK前,请确保Java环境和Maven环境正确配置并能正常使用,详细步骤如下: 下载SDK源码并解压。 通过命令行进入源码解压目录。 运行如下命令 linux系统: mvn clean package -Dmaven.test.skip=true -f pom-java.xml Windows系统: mvn clean package "-Dmaven.test.skip=true" -f pom-java.xml 构建产物位于解压目录中的target目录下。 将生成的jar包放置于本地工程的依赖路径。
  • 代码示例:复制对象时重写对象访问权限 复制对象时重写对象访问权限,将sourcebucketname桶下的sourceobjectname对象复制到destbucketname桶下的destobjectname对象中。 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 50 51 52 53 import com.obs.services.ObsClient; import com.obs.services.exception.ObsException; import com.obs.services.model.AccessControlList; import com.obs.services.model.CopyObjectRequest; import com.obs.services.model.CopyObjectResult; public class CopyObject004 { 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, 此处以华北-北京四为例,其他地区请按实际情况填写。 String endPoint = "https://obs.cn-north-4.myhuaweicloud.com"; // 您可以通过环境变量获取endPoint,也可以使用其他外部引入方式传入。 //String endPoint = System.getenv("ENDPOINT"); // 创建ObsClient实例 // 使用永久AK/SK初始化客户端 ObsClient obsClient = new ObsClient(ak, sk,endPoint); // 使用临时AK/SK和SecurityToken初始化客户端 // ObsClient obsClient = new ObsClient(ak, sk, securityToken, endPoint); try { // 复制对象时重写对象访问权限 CopyObjectRequest request = new CopyObjectRequest("sourcebucketname", "sourceobjectname", "destbucketname", "destobjectname"); // 复制时重写对象访问权限为私有读写 request.setAcl(AccessControlList.REST_CANNED_PRIVATE); CopyObjectResult result = obsClient.copyObject(request); System.out.println("copyObject successfully"); System.out.println("Etag:" + result.getEtag()); } catch (ObsException e) { System.out.println("copyObject 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("copyObject failed"); // 其他异常信息打印 e.printStackTrace(); } } }
  • 代码示例:简单复制对象 本示例展示了如何将sourcebucketname桶下的sourceobjectname对象简单复制到destbucketname桶下的destobjectname对象中。示例代码如下: 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 import com.obs.services.ObsClient; import com.obs.services.exception.ObsException; import com.obs.services.model.CopyObjectResult; public class CopyObject001 { 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, 此处以华北-北京四为例,其他地区请按实际情况填写。 String endPoint = "https://obs.cn-north-4.myhuaweicloud.com"; // 您可以通过环境变量获取endPoint,也可以使用其他外部引入方式传入。 //String endPoint = System.getenv("ENDPOINT"); // 创建ObsClient实例 // 使用永久AK/SK初始化客户端 ObsClient obsClient = new ObsClient(ak, sk,endPoint); // 使用临时AK/SK和SecurityToken初始化客户端 // ObsClient obsClient = new ObsClient(ak, sk, securityToken, endPoint); try { // 简单复制 CopyObjectResult result = obsClient.copyObject("sourcebucketname", "sourceobjectname", "destbucketname", "destobjectname"); System.out.println("copyObject successfully"); System.out.println("StatusCode:" + result.getStatusCode()); System.out.println("Etag:" + result.getEtag()); } catch (ObsException e) { System.out.println("copyObject 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("copyObject failed"); // 其他异常信息打印 e.printStackTrace(); } } }
  • 代码示例:限定条件复制 限定条件复制。将sourcebucketname桶下的sourceobjectname对象复制到destbucketname桶下的destobjectname对象中。 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 50 51 52 53 import com.obs.services.ObsClient; import com.obs.services.exception.ObsException; import com.obs.services.model.CopyObjectRequest; import com.obs.services.model.CopyObjectResult; import java.text.SimpleDateFormat; public class CopyObject003 { 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, 此处以华北-北京四为例,其他地区请按实际情况填写。 String endPoint = "https://obs.cn-north-4.myhuaweicloud.com"; // 您可以通过环境变量获取endPoint,也可以使用其他外部引入方式传入。 //String endPoint = System.getenv("ENDPOINT"); // 创建ObsClient实例 // 使用永久AK/SK初始化客户端 ObsClient obsClient = new ObsClient(ak, sk,endPoint); // 使用临时AK/SK和SecurityToken初始化客户端 // ObsClient obsClient = new ObsClient(ak, sk, securityToken, endPoint); try { // 限定条件复制 CopyObjectRequest request = new CopyObjectRequest("sourcebucketname", "sourceobjectname", "destbucketname", "destobjectname"); request.setIfModifiedSince(new SimpleDateFormat("yyyy-MM-dd").parse("2016-01-01")); request.setIfNoneMatchTag("none-match-etag"); CopyObjectResult result = obsClient.copyObject(request); System.out.println("copyObject successfully"); System.out.println("Etag:" + result.getEtag()); } catch (ObsException e) { System.out.println("copyObject 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("copyObject failed"); // 其他异常信息打印 e.printStackTrace(); } } }
  • 接口约束 您必须是桶拥有者或拥有复制对象的权限,才能复制对象。建议使用IAM或桶策略进行授权,如果使用IAM则需授予obs:object:PutObject权限,如果使用桶策略则需授予PutObject权限。相关授权方式介绍可参见OBS权限控制概述,配置方式详见使用IAM自定义策略、配置对象策略。 用户有待复制的源对象的读权限。 OBS支持的region以及region与endPoint的对应关系,详细信息请参见地区与终端节点。 复制对象操作的请求需要通过头域携带拷贝的原桶和对象信息,不能携带消息实体。 支持同区域跨桶复制,不支持跨区域复制。 目标对象大小范围是[0, 5GB],如果源对象大小超过5GB,只能使用分段复制功能复制对象。 如果待复制的源对象是归档存储类别,则必须先恢复源对象才能进行复制。
  • 接口约束 建议使用IAM或策略进行授权,如果使用IAM则需授予obs:bucket:DeleteAccessLabel权限。相关授权方式介绍可参见OBS权限控制概述,配置方式详见使用IAM自定义策略、配置对象策略。 OBS支持的region以及region与endPoint的对应关系,详细信息请参见地区与终端节点。 目前接口仅在并行文件系统支持,普通对象桶不支持,如何创建并行文件系统请参考创建并行文件系统(Java SDK)。 仅支持并行文件系统的目录级别的设置,并行文件系统级和文件级均不支持。
  • 代码示例 本示例用于删除examplebucket并行文件系统中的目录Dirname的accesslabel 。 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 50 import com.obs.services.ObsClient; import com.obs.services.exception.ObsException; import com.obs.services.model.fs.accesslabel.* public class DeleteAccessLabel{ 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, 此处以华北-北京四为例,其他地区请按实际情况填写。 String endPoint = "https://obs.cn-north-4.myhuaweicloud.com"; // 您可以通过环境变量获取endPoint,也可以使用其他外部引入方式传入。 //String endPoint = System.getenv("ENDPOINT"); // 创建ObsClient实例 // 使用永久AK/SK初始化客户端 ObsClient obsClient = new ObsClient(ak, sk,endPoint); // 使用临时AK/SK和SecurityToken初始化客户端 // ObsClient obsClient = new ObsClient(ak, sk, securityToken, endPoint); try { //获取目录accesslabel DeleteAccessLabelRequest request = new DeleteAccessLabelRequest(); request.setBucketName("examplebucket"); request.setDir("Dirname"); DeleteAccessLabelRequest result = obsClient.DeleteAccessLabelRequest(request); System.out.println("DeleteAccessLabel successfully"); System.out.println("HTTP Code: " + result.getStatusCode()); } catch (ObsException e) { System.out.println("DeleteAccessLabel 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("DeleteAccessLabel failed"); // 其他异常信息打印 e.printStackTrace(); } } }
  • 请求参数说明 表1 请求参数列表 参数名称 参数类型 是否必选 描述 request DeleteAccessLabelRequest 必选 参数解释: 请求参数,详见DeleteAccessLabelRequest。 表2 DeleteAccessLabelRequest 参数名称 参数类型 是否可选 描述 bucketName String 必选 参数解释: 并行文件系统名。 约束限制: 并行文件系统的名字需全局唯一,不能与已有的任何并行文件系统名称重复,包括其他用户创建的并行文件系统。 并行文件系统命名规则如下: 3~63个字符,数字或字母开头,支持小写字母、数字、“-”、“.”。 禁止使用IP地址。 禁止以“-”或“.”开头及结尾。 禁止两个“.”相邻(如:“my..bucket”)。 禁止“.”和“-”相邻(如:“my-.bucket”和“my.-bucket”)。 同一用户在同一个区域多次创建同名并行文件系统不会报错,创建的桶属性以第一次请求为准。 默认取值: 无 Dir String 必选 参数解释: 目录名。目录名是并行文件系统中目录的路径,路径中不包含并行文件系统名。 例如,您对象的访问地址为examplebucket.obs.cn-north-4.myhuaweicloud.com/folder/test.txt 中,对象名为folder/test.txt。 取值范围: 长度大于0且不超过1024的字符串。 默认取值: 无
  • 代码示例 以下代码展示了如何通过设置versionId复制sourceexamplebucket桶中sourceobjectname的多版本对象。 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 50 51 52 53 import com.obs.services.ObsClient; import com.obs.services.exception.ObsException; import com.obs.services.model.CopyObjectRequest; public class CopyObject001 { 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, 此处以华北-北京四为例,其他地区请按实际情况填写。 String endPoint = "https://obs.cn-north-4.myhuaweicloud.com"; // 您可以通过环境变量获取endPoint,也可以使用其他外部引入方式传入。 //String endPoint = System.getenv("ENDPOINT"); // 创建ObsClient实例 // 使用永久AK/SK初始化客户端 ObsClient obsClient = new ObsClient(ak, sk,endPoint); // 使用临时AK/SK和SecurityToken初始化客户端 // ObsClient obsClient = new ObsClient(ak, sk, securityToken, endPoint); try { // 复制多版本对象 CopyObjectRequest request = new CopyObjectRequest(); request.setSourceBucketName("sourceexamplebucket"); request.setSourceObjectKey("sourceobjectname"); // 设置要复制对象的版本号 request.setVersionId("versionid"); request.setDestinationBucketName("destexamplebucket"); request.setDestinationObjectKey("destobjectname"); obsClient.copyObject(request); System.out.println("copyObject successfully"); } catch (ObsException e) { System.out.println("copyObject 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("copyObject failed"); // 其他异常信息打印 e.printStackTrace(); } } }
  • 接口约束 您必须是桶拥有者或拥有复制对象的权限,才能复制对象。建议使用IAM或桶策略进行授权,如果使用IAM则需授予obs:object:PutObject权限,如果使用桶策略则需授予PutObject权限。相关授权方式介绍可参见OBS权限控制概述,配置方式详见使用IAM自定义策略、配置对象策略。 用户有待复制的源对象的读权限。 OBS支持的region以及region与endPoint的对应关系,详细信息请参见地区与终端节点。 复制对象操作的请求需要通过头域携带拷贝的原桶和对象信息,不能携带消息实体。 支持同区域跨桶复制,不支持跨区域复制。 目标对象大小范围是[0, 5GB],如果源对象大小超过5GB,只能使用分段复制功能复制对象。 如果待复制的源对象是归档存储类别,则必须先恢复源对象才能进行复制。
  • 适用计费项 数字主线引擎只有为各服务能力,即模型管理、服务管理和数据管理进行MCU分配后,才能确定一个数字主线引擎的具体服务规格。以下计费项支持包年/包月。 表1 适用计费项 计费项 说明 数字主线引擎 MCU 随包年/包月的数字主线引擎进行MCU分配的各服务能力,其计费模式也为包年/包月。 假设您计划购买一个包年/包月的数字主线引擎,并同时进行MCU分配,规格如模型管理4MCU、服务管理3MCU和数据管理3MCU,购买时长为1个月。在购买数据建模引擎服务页面底部,您将看到所需的费用,如图1所示。 图1 配置费用示例 配置费用的计算公式: 配置费用 =MCU数量 * 购买时长 * MCU单价(包月或包年)
  • 变更配置后对计费的影响 当前包年/包月的数字主线引擎规格不满足您的业务需要时,您可以在iDME控制台发起变更操作。包年/包月的数字主线引擎仅支持资源升配,不支持资源降配。 无任何优惠场景的资源升配的计费公式: 升配费用 =(新配置价格 - 旧配置价格)* 剩余周期 其中,剩余周期的计算公式根据包月或包年有所不同。 包月剩余周期 = 每个自然月的剩余天数 / 对应自然月的最大天数,变更当天不算。 包年剩余周期为:剩余天数(不含闰年的2.29号)/365,变更当天不算。 这里以资源升配且无任何优惠的场景为例,计算价格仅作示例用,非官网实际价格,实际价格请参考工业数字模型驱动引擎价格详情。 假设您在2023/04/08购买了一个包年/包月的数字主线引擎,MCU分配规格为模型管理4MCU、服务管理3MCU和数据管理3MCU,购买时长为1个月。在2023/04/18变更规格为模型管理4MCU、服务管理3MCU和数据管理4MCU。旧配置价格为8,760.00元/月,新配置价格为9,636.00元/月。 剩余周期 = 12 / 30 + 8 / 31 = 0.6581(月) 其中,12表示4月份剩余天数,30表示4月份最大天数;8表示5月份剩余天数,31表示5月份最大天数。 升配费用 = (9,636 - 8,760) * 0.6581 = 576.50(元) 更多信息请参见变更资源规格费用说明。
  • 运行服务中的节点、增量包、和用户可以转移吗? iDME 运行服务包括数据建模引擎和数字主线引擎两种运行服务。 这里所说的运行服务表示基础版数据建模引擎,一套运行服务至少需要同时包含节点和用户资源,才能保证应用正常运行和被用户操作。 随基础版数据建模引擎购买时所配置的节点、增量包(可选)和用户资源不支持转移,后续变更规格或扩容时仅支持资源升配,不支持资源降配,即变更规格或扩容时,节点、增量包和用户数量可以增加,不可以减少。 此处以部署在公有云上为例,某用户依次购买了两套基础版数据建模引擎,分别命名为测试运行服务和生产运行服务。其中,测试运行服务在购买时配置了一个节点和一个用户,生产运行服务配置了三个节点、每种类型增量包各一个和三个用户。在使用过程中,用户发现测试运行服务的规格无法满足业务需要。此时,仅支持用户通过变更规格或扩容进行资源升配,增加测试运行服务中的节点、增量包和用户数量。但不支持将生产运行服务中的节点、增量包和用户资源转移到测试运行服务。 父主题: 计费FAQ
  • 适用计费项 基础版数据建模引擎只有同时配置节点、增量包(可选)和用户,才能确定一个数据建模引擎的具体服务形态。以下计费项支持包年/包月。 表1 适用计费项 计费项 说明 基础版 数据建模引擎 节点 随包年/包月的数据建模引擎配置的节点,部署在公有云上,其计费模式也为包年/包月。 价格随购买节点数量增加而倍数递增。 基础版 数据建模引擎 用户 随包年/包月的数据建模引擎配置的用户,部署在公有云上,其计费模式也为包年/包月。 价格随购买用户数量增加而倍数递增。 结构化数据增量包(20GB) 随包年/包月的“基础版 数据建模引擎 节点”扩容使用的结构化数据增量包,其计费模式也为包年/包月。 价格随购买结构化数据增量包数量增加而倍数递增。 文件数据增量包(500GB) 随包年/包月的“基础版 数据建模引擎 节点”扩容使用的文件数据增量包,其计费模式也为包年/包月。 价格随购买文件数据增量包数量增加而倍数递增。 基线数据增量包(20GB*2) 随包年/包月的“基础版 数据建模引擎 节点”扩容使用的基线数据增量包,其计费模式也为包年/包月。 价格随购买基线数据增量包数量增加而倍数递增。 基础版 数据建模引擎 边缘节点 随包年/包月的数据建模引擎配置的边缘节点,部署在边缘云上,其计费模式也为包年/包月。 价格随购买节点数量增加而倍数递增。 基础版 数据建模引擎 边缘用户 随包年/包月的数据建模引擎配置的边缘用户,部署在边缘云上,其计费模式也为包年/包月。 价格随购买用户数量增加而倍数递增。 假设您计划购买一个用于部署在公有云上的基础版数据建模引擎,并同时购买一个基础版节点、每种类型的增量包各一个和一个基础版用户,购买时长为1个月。在购买数据建模引擎服务页面底部,您将看到所需费用的明细,如图1所示。 图1 配置费用示例 配置费用将包括以下部分: 基础版节点:根据所选服务对应的节点类型计算的费用。 基础版读写用户:根据所选服务对应的用户类型计算的费用。 增量包:根据所选服务对应的增量包类型分别计算的费用。
  • 变更配置后对计费的影响 当前包年/包月的数据建模引擎规格不满足您的业务需要时,您可以在iDME控制台发起变更或扩容操作。包年/包月的数据建模引擎仅支持资源升配,不支持资源降配。 当前仅公有云场景下支持变更配置。 无任何优惠场景的资源升配的计费公式: 升配费用 =(新配置价格 - 旧配置价格)* 剩余周期 其中,剩余周期的计算公式根据包月或包年有所不同。 包月剩余周期 = 每个自然月的剩余天数 / 对应自然月的最大天数,变更当天不算。 包年剩余周期为:剩余天数(不含闰年的2.29号)/365,变更当天不算。 这里以资源升配且无任何优惠的场景为例,计算价格仅作示例用,非官网实际价格,实际价格请参考工业数字模型驱动引擎价格详情。 假设您在2023/04/08购买了一个包年/包月的用于部署在公有云上的基础版数据建模引擎,并同时购买节点*1和读写用户*1,购买时长为1个月。在2023/04/18变更规格为节点*2和读写用户*2。旧配置价格为12,750.00元/月,新配置价格为25,500.00元/月。 剩余周期 = 12 / 30 + 8 / 31 = 0.6581(月) 其中,12表示4月份剩余天数,30表示4月份最大天数;8表示5月份剩余天数,31表示5月份最大天数。 升配费用 = (25,500 - 12,750) * 0.6581 = 8,392.78(元) 更多信息请参见变更资源规格费用说明。
  • 使用限制 随基础版数据建模引擎购买时所配置的节点、增量包(可选)和用户资源不支持转移,后续变更规格或扩容时仅支持资源升配,不支持资源降配,即变更规格或扩容时,节点、增量包和用户数量可以增加,不可以减少。 此处以部署在公有云上为例,某用户依次购买了两套基础版数据建模引擎,分别命名为测试运行服务和生产运行服务。其中,测试运行服务在购买时配置了一个节点和一个用户,生产运行服务配置了三个节点、每种类型增量包各一个和三个用户。在使用过程中,用户发现测试运行服务的规格无法满足业务需要。此时,仅支持用户通过变更规格或扩容进行资源升配,增加测试运行服务中的节点、增量包和用户数量。但不支持将生产运行服务中的节点、增量包和用户资源转移到测试运行服务。
  • 推荐业务流程二 图2 xDM-F数据同步推荐业务流程二 授权应用责任人为企业级管理员。 在全局用户授权页面,使用企业级管理员将应用责任人授权为企业级管理员。 创建xDM-F数据同步任务。 在xDM-F同步任务页面,为将要同步的应用创建xDM-F同步任务。 在iDME控制台完成相关操作。 在iDME控制台,已完成应用的功能设计和开发,并打开数字主线引擎与对应基础版数据建模引擎间的数据连接通道开关,完成了应用部署。应用部署时会自动将xDM-F模型同步至LinkX-F。 发布LinkX-F数据模型。 在数据模型管理中,将基于xDM-F模型生成的LinkX-F模型进行发布后会自动生成xDM-F映射和图数据库映射,即可实现增量实例数据实时同步。具体操作可参考发布数据实体和发布关系实体。 创建实例调度任务。 在实例调度任务页面,可通过创建实例调度任务,实现xDM-F模型全量或指定时间范围内的实例数据定时同步。
  • 推荐业务流程一 图1 xDM-F数据同步推荐业务流程一 授权应用责任人为企业级管理员。 在全局用户授权页面,使用企业级管理员将应用责任人授权为企业级管理员。 在iDME控制台完成相关操作。 在iDME控制台,已完成应用的功能设计和开发,并打开数字主线引擎与对应基础版数据建模引擎间的数据连接通道开关,完成了应用部署。 创建xDM-F数据同步任务。 在xDM-F同步任务页面,为将要同步的应用创建xDM-F同步任务。 手动同步xDM-F模型数据。 在xDM-F同步任务页面,执行手动同步操作可立即为您同步xDM-F数据。 发布LinkX-F数据模型。 在数据模型管理中,将基于xDM-F模型生成的LinkX-F模型进行发布后会自动生成xDM-F映射和图数据库映射,即可实现增量实例数据实时同步。具体操作可参考发布数据实体和发布关系实体。 创建实例调度任务。 在实例调度任务页面,可通过创建实例调度任务,实现xDM-F模型全量或指定时间范围内的实例数据定时同步。
  • 系统权限说明 数字主线引擎(LinkX Foundation,简称LinkX-F)中预置了四种角色,即企业级管理员、租户级管理员、开发人员和只读人员。 关于设置系统权限的详细操作请参见用户权限管理。 企业级管理员(En_ADMINISTRATOR):拥有系统操作的最高权限,并可对除自身外的其他用户进行数据权限授权。 数字主线引擎购买成功后会自动开通企业租户,即服务购买账号也是开通企业租户的账号。该账号登录数字主线引擎后,系统默认会为其配置该角色。 租户级管理员(Func_ADMINISTRATOR):由企业级管理员授权,享有授权应用租户下除“xDM-F数据同步”外的其他模块的数据操作权限,但不包含“全局用户授权”的可见可操作权限。 开发人员(Func_DEVELOPER):由企业级管理员或租户级管理员授权,享有授权应用租户下除“xDM-F数据同步”、“租户管理”和“用户权限管理”外的其他模块的数据操作权限,但不包含“全局用户授权”和“活动日志”的可见可操作权限。 只读人员(Func_READER):由企业级管理员或租户级管理员授权,享有授权应用租户的数据只读权限,但不包含“全局用户授权”和“活动日志”的可见权限。 表1 我的工作空间 二级菜单 功能 企业级管理员 租户级管理员 开发人员 只读人员 导出任务 查看 √ √ √ √ 导出任务 下载导出文件 √ √ √ × 导入任务 查看 √ √ √ √ 导入任务 下载错误报告 √ √ √ × 活动日志 查看 √ √ × × 表2 xDM-F数据同步 二级菜单 功能 企业级管理员 租户级管理员 开发人员 只读人员 xDM-F同步任务 查看 √ × × × xDM-F同步任务 创建 √ × × × xDM-F同步任务 修改 √ × × × xDM-F同步任务 删除 √ × × × xDM-F同步任务 同步 √ × × × 同步质量监控 查看 √ × × × 实例调度任务 查看 √ × × × 实例调度任务 创建 √ × × × 表3 模型设计-数据模型图谱 二级菜单 功能 企业级管理员 租户级管理员 开发人员 只读人员 数据模型图谱 查看 √ √ √ √ 表4 模型设计-数据模型管理 二级菜单 功能 企业级管理员 租户级管理员 开发人员 只读人员 数据实体 查看 √ √ √ √ 数据实体 创建 √ √ √ × 数据实体 逆向建模 √ √ √ × 数据实体 删除 √ √ √ × 数据实体 编辑 √ √ √ × 数据实体 发布 √ √ √ × 数据实体 作废 √ √ √ × 数据实体 管理数据源映射 √ √ √ × 数据实体 管理单数据实体属性约束规则 √ √ √ × 数据实体 同步xDM-F实体变更信息 √ √ √ × 数据实体 失效 √ √ √ × 数据实体 修订 √ √ √ × 数据实体 批量编辑责任人 √ √ × × 关系实体 查看 √ √ √ √ 关系实体 创建 √ √ √ × 关系实体 删除 √ √ √ × 关系实体 编辑 √ √ √ × 关系实体 发布 √ √ √ × 关系实体 管理数据源映射 √ √ √ × 关系实体 同步xDM-F实体变更信息 √ √ √ × 关系实体 失效 √ √ √ × 关系实体 修订 √ √ √ × 关系实体 作废 √ √ √ × 关系实体 批量编辑责任人 √ √ × × 引用属性配置-枚举类型 查看 √ √ √ √ 引用属性配置-枚举类型 创建 √ √ √ × 引用属性配置-枚举类型 编辑 √ √ √ × 引用属性配置-枚举类型 删除 √ √ √ × 引用属性配置-单位类型 查看 √ √ √ √ 引用属性配置-单位类型 创建 √ √ √ × 引用属性配置-单位类型 编辑 √ √ √ × 引用属性配置-单位类型 删除 √ √ √ × 表5 模型设计-数据看板 二级菜单 功能 企业级管理员 租户级管理员 开发人员 只读人员 数据实体统计 查看 √ √ √ √ 数据实体属性统计 查看 √ √ √ √ 数据实体实例数据统计 查看 √ √ √ √ 数据源映射统计 查看 √ √ √ √ 表6 数据联接-数据入图 二级菜单 功能 企业级管理员 租户级管理员 开发人员 只读人员 数据入图任务 查看 √ √ √ √ 数据入图任务 创建 √ √ √ × 数据入图任务 编辑 √ √ √ × 数据入图任务 删除 √ √ √ × 数据入图任务 作废 √ √ √ × 数据入图调度 查看 √ √ √ √ 数据入图调度 暂停/恢复 √ √ √ × 数据入图调度 取消挂起 √ √ √ × 数据入图调度 重试/终止 √ √ √ × 数据质量报表 查看 √ √ √ √ 数据质量报表 修改 √ √ √ × 表7 数据质量 二级菜单 功能 企业级管理员 租户级管理员 开发人员 只读人员 质量检查任务 查看 √ √ √ √ 质量检查任务 创建 √ √ √ × 质量检查任务 编辑 √ √ √ × 质量检查任务 删除 √ √ √ × 质量检查任务 终止/重启 √ √ √ × 质量检查报告 查看 √ √ √ √ 表8 数据服务 二级菜单 功能 企业级管理员 租户级管理员 开发人员 只读人员 聚合服务编排 查看 √ √ √ √ 聚合服务编排 创建 √ √ √ × 聚合服务编排 修改 √ √ √ × 聚合服务编排 删除 √ √ √ × 聚合服务编排 发布 √ √ √ × 聚合服务编排 数据集配置 √ √ √ × 聚合服务编排 数据展示配置 √ √ √ × 聚合服务编排 另存 √ √ √ × 聚合服务编排 修订 √ √ √ × 聚合服务编排 作废 √ √ √ × 聚合服务编排 更新 √ √ √ × 聚合服务编排 批量编辑责任人 √ √ × × 聚合服务编排 批量编辑维护人 √ √ × × 聚合服务编排 导出 √ √ √ × 环境变量 查看 √ √ √ √ 环境变量 创建 √ √ √ × 环境变量 修改 √ √ √ × 环境变量 删除 √ √ √ × 表9 数字化场景 二级菜单 功能 企业级管理员 租户级管理员 开发人员 只读人员 数字化场景 查看 √ √ √ √ 数字化场景 创建 √ √ √ × 数字化场景 修改 √ √ √ × 数字化场景 管理关联的数据服务 √ √ √ × 数据化场景 删除 √ √ √ × 数据化场景 发布 √ √ √ × 数据化场景 修订 √ √ √ × 数据化场景 另存 √ √ √ × 数据化场景 作废 √ √ √ × 业务对象 查看 √ √ √ √ 业务对象 创建 √ √ √ × 业务对象 修改 √ √ √ × 业务对象 管理关联的数据实体 √ √ √ × 业务对象 删除 √ √ √ × 表10 基础数据管理 二级菜单 功能 企业级管理员 租户级管理员 开发人员 只读人员 数据源 查看 √ √ √ √ 数据源 创建 √ √ √ × 数据源 修改 √ √ √ × 数据源 删除 √ √ √ × 源系统 查看 √ √ √ √ 源系统 创建 √ √ √ × 源系统 修改 √ √ √ × 领域 查看 √ √ √ √ 表11 用户权限管理 二级菜单 功能 企业级管理员 租户级管理员 开发人员 只读人员 租户用户授权 查看 √ √ √ √ 租户用户授权 授权 √ √ × × 租户用户授权 修改 √ √ × × 租户用户授权 删除 √ √ × × 全局用户授权 查看 √ × × × 全局用户授权 授权 √ × × × 全局用户授权 修改 √ × × × 全局用户授权 删除 √ × × × 角色管理 查看 √ √ √ √ 表12 租户管理 二级菜单 功能 企业级管理员 租户级管理员 开发人员 只读人员 我的租户 查看 √ √ √ √ 我的租户 修改 √ √ × × 租户管理 查看 √ √ √ √ 租户管理 创建 √ × × × 租户管理 启用/停用 √ √ × ×
  • 数据同步规则说明 仅同步xDM-F同步任务清单中所选应用运行态及对应xDM-F租户下的数据,同步过来的模型和实例数据存放在LinkX-F系统中的指定租户下。 通过实体的“是否集成xDM-F”值是否为“是”识别集成xDM-F模型生成的LinkX-F实体。xDM-F模型概念详细介绍请参考数据模型概述。 集成xDM-F模型生成的LinkX-F实体,存在以下修改限制: 在“基本信息”页签中,不支持对“责任人”、“所属领域”、“源系统”、“是否主数据”、“产品阶段”和“标签”外的其他字段进行修改。 在实体属性页签中,仅支持上移、下移、置顶自定义属性,其他操作均不支持(如新增、修改、删除、生效、失效等)。 同步数据实体时,仅同步“模型类型”为“实体模型”和“扩展模型”,“模型分类”为“业务数据模型”和“同步至LinkX-F”为“是”的实体。同时,实体属性会被全部同步,并根据xDM-F实体属性是否“入图”自动映射写入对应LinkX-F实体属性的“是否入图”值。但如果属性是唯一键或关联属性,不论xDM-F实体属性是否“入图”,LinkX-F实体发布后都会自动为对应属性配置图数据库映射字段,后续自动入图。 同步关系实体时,区分实体关系和非实体关系。如表1所示。 表1 关系实体同步限制说明 关系类型 限制说明 实体关系 同步实体时,仅同步“模型类型”为“实体模型”和“扩展模型”,“模型分类”为“业务数据模型”和“同步至LinkX-F”为“是”的实体。 同时,实体属性会被全部同步,并根据xDM-F实体属性是否“入图”自动映射写入对应LinkX-F实体属性的“是否入图”值。但如果属性是唯一键或关联属性,不论xDM-F实体属性是否“入图”,LinkX-F实体发布后都会自动为对应属性配置图数据库映射字段,后续自动入图。 非实体关系 仅当xDM-F数据实体存在类型为“参考对象”的扩展属性或基本属性时,LinkX-F系统中会自动建立以对应数据实体为源端、以参考对象为目标端的非实体关系。 说明: 如果源端数据实体对应的xDM-F数据实体有多个类型为“参考对象”的属性,LinkX-F系统中则会生成多条非实体关系,非实体关系命名规则为{xDM-F数据实体名称}_ForeignKey_{xDM-F数据实体对应属性“参考对象”中实体的英文名称}_{xDM-F参考对象属性的英文名称}。 在iDME控制台进行应用部署或在LinkX-F中手动同步任务时,xDM-F中的枚举类型,以及内置和自定义创建的单位类型将会被全量同步至LinkX-F系统,此类数据仅作为xDM-F集成模型的引用属性配置,不支持被LinkX-F自创建实体在管理属性时使用。您可通过“枚举来源”或“单位来源”识别,信息显示规则为XDM_{xDM-F应用英文名称}_{xDM-F租户编码}。 如果LinkX-F系统中存在同名实体(包括数据实体和关系实体),同步至LinkX-F系统中的实体“英文名称”或“中文名称”后会自动加上数字编号,并按序递增,显示规则为{xDM-F实体英文名称}_{按序数字编号},示例“EntityName_02”。 当应用运行态中对应实体的基本信息、属性有更新时,LinkX-F系统中对应实体旁会出现更新标识,您可查看更新详情后确认同步,更新同步后相关信息也会随之更新。更新规则详见表2。 数据实体、关系实体同步变更信息的具体操作请参考同步xDM-F数据实体变更信息和同步xDM-F关系实体变更信息。 表2 xDM-F模型变更信息同步规则说明 更新类型 规则说明 基本信息 当应用运行态中对应实体的基本信息更新时,确认更新后对应LinkX-F实体的基本信息也会随之更新。 属性 当应用运行态中对应实体的属性有变更时(如新增、修改、删除),确认更新后对应LinkX-F实体的属性也会随之更新。 若应用运行态中实体的属性被删除,对应未发布的LinkX-F实体属性更新同步时也会被删除,已发布的LinkX-F实体属性更新同步时则会被失效。 当应用运行态中对应实体的实例数据有更新时(如新增、修改、删除),集成xDM-F模型生成的LinkX-F实体的实例数据会随之自动更新。此种方式仅同步增量的实例数据,如需同步全量或历史指定范围内的实例数据,可通过实例调度任务实现,相关操作可参考新增实例调度任务。 当符合以下任一场景时,实例数据(如新增、修改、删除)同步时会被阻塞。如果想同步阻塞期间的实例数据,需在七天内执行同步实体变更信息操作。 如果xDM-F模型新增了关联属性或唯一键属性,或是新增属性的“入图”值为是,但LinkX-F中未同步xDM-F实体变更信息,此时实例数据同步受阻。 如果xDM-F模型属性对应的“入图”值有修改,但LinkX-F中未同步xDM-F实体变更信息,此时实例数据同步受阻。 如果xDM-F租户或应用被重置/删除,LinkX-F系统中对应租户或对应应用下所有租户的同步任务会自动中断,已同步过来的模型和实例数据会被保留但后续不再更新。 父主题: xDM-F数据同步
  • 处理实体调度异常数据 单击实体“操作”列处的,根据需要维护实体的“异常类型”、“异常原因类型”、“原因分析”、“建议解决方案”和“计划完成时间”等信息。 图2 维护实体 表2 参数说明 参数 说明 异常类型 必填。选择异常类型。 IGNORE :代表可忽略,表示源端更新频率低,数据不常更新的实体。 WARNING :代表警告,表示数据入图范围异常但暂未发现数据入图任务同步异常的实体。 ERROR :代表错误,表示数据入图任务运行异常导致入图范围异常的实体。 异常原因类型 必填,手动输入原因类型。 原因分析 必填,手动输入原因。 建议解决方案 必填,手动输入建议解决方案。 计划完成时间 必填,选择当天及以后的日期。 解决进展 非必填,手动输入解决进展。
  • 实体详情介绍 在“数据实体”页面,您可单击实体的“编码”链接,查看对应实体的详情信息,包括“基本信息”、“数据实体属性”、“数据源映射”、“数据实体间关系”、“单数据实体属性约束规则”、“使用情况”和“修订记录”等。 表1 实体详情页签介绍 详情页签 说明 基本信息 展示当前实体的基本信息,包括“基本信息”、“物理表信息”和“版本信息”等。 数据实体属性 展示当前实体的属性信息,包括“自定义属性”和“系统基本属性”等(属性更多操作请参考管理数据实体属性)。 数据源映射 展示当前实体的所有数据源映射信息,包括源端映射和目标端映射。 源端映射:展示当前实体的实例数据入图的源端数据来源。 目标端映射:展示当前实体的实例数据入图的目标端。 数据实体间关系 展示当前实体的“图结构”、“源数据实体关系”或“目标数据实体关系”信息等。 图结构:展示以当前实体为源数据实体,以及以当前实体为目标数据实体的所有关系实体组成的图结构视图。 源数据实体关系:展示以当前实体为源数据实体的关系实体列表。 目标数据实体关系:展示以当前实体为目标数据实体的关系实体列表。 单数据实体约束规则 展示当前实体所有的属性约束规则。单数据实体属性约束规则是用作后期数据入图后,进行数据质量清洗时,判定数据是否满足条件的标准。 使用情况 展示当前实体被其他服务、关系等的引用情况。 修订记录 展示当前实体的所有版本修订记录。修订记录不可创建和编辑,每次有版本修订此处会自动增加修订内容。 查看详情:单击“修订号”超链接,弹出对应记录的详细信息。 对比记录:如果实体有多条版本修订记录,可对比记录查看差异。 说明: 勾选2个以上4个以内不同的版本,比较不同版本“数据实体属性”、“数据实体关系”之间的差异。 父主题: 数据实体
  • 操作场景 您可根据需要对正在工作的实体的属性进行管理,如新增、修改、删除等。 集成xDM-F模型生成的LinkX-F实体,仅支持上移、下移、置顶对应的自定义属性,其他操作均不支持(如新增、修改、删除、生效、失效等)。集成方xDM-F模型的属性与LinkX-F属性自动匹配规则如下: 如果xDM-F模型属性的英文名称与LinkX-F“系统基本属性”相同(不区分大小写),则与系统基本属性匹配。其中实体属性“类型”保持LinkX-F系统固有不变,“系统基本属性”的“是否入图”值显示规则与LinkX-F自创建实体相同,实体发布后均更新为是。 如果其他属性(如扩展属性)同步过来后会自动匹配为自定义属性。如果属性是唯一键或关联属性,不论xDM-F实体属性是否“入图”,LinkX-F实体发布后都会自动为对应属性配置图数据库映射字段,后续自动入图。
共100000条