云服务器内容精选
-
请求参数 表3 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 发送的实体的MIME类型。推荐用户默认使用application/json,如果API是对象、镜像上传等接口,媒体类型可按照流类型的不同进行确定。 缺省值:application/json X-Auth-Token 是 String 从 IAM 服务获取的用户Token。 用户Token也就是调用获取用户Token接口的响应值,该接口是唯一不需要认证的接口。 请求响应成功后在响应消息头中包含的“X-Subject-Token”的值即为Token值。 X-Language 否 String 请求语言类型。 缺省值:en-us 枚举值: en-us zh-cn
-
响应示例 状态码: 200 OK { "jobs" : [ { "id" : "c7debc9c-8e09-4a5d-8dd6-cc44f78jb20r", "status" : "CONFIGURATION", "create_time" : "2022-11-07T16:15:18Z", "base_info" : { "name" : "DRS-1234", "job_type" : "sync", "engine_type" : "oracle-to-gaussdbv5", "job_direction" : "up", "task_type" : "FULL_INCR_TRANS", "net_type" : "eip", "charging_mode" : "on_demand", "enterprise_project_id" : "0", "description" : "", "expired_days" : 14, "tags" : [ { "key" : "test", "value" : "test" } ] }, "source_endpoint" : [ { "db_type" : "oracle", "endpoint_type" : "offline", "endpoint_role" : "so", "endpoint" : { "id" : "f59e6118-da89-4fdb-9b98-65f56709928a", "endpoint_name" : "oracle", "ip" : "10.154.217.239", "db_port" : "1521", "db_user" : "ORACLE_USER", "db_name" : "serviceName.orcl" }, "ssl" : { "ssl_link" : false } } ], "target_endpoint" : [ { "db_type" : "gaussdbv5", "endpoint_type" : "cloud", "endpoint_role" : "ta", "endpoint" : { "id" : "10deb576-8885-473b-a213-4d76e668dc0d", "endpoint_name" : "cloud_gaussdbv5", "instance_id" : "c2c7579bc09c490b9d8009db715aeb0ain14", "db_user" : "root" }, "cloud" : { "region" : "cn-north-4", "project_id" : "9dc8c0f3f74c4dbb23c29cf0318ee561", "az_code" : "cn-north-4a,cn-north-4g,cn-north-4c" }, "vpc" : { "vpc_id" : "2cb5d364-ae63-4fbb-85b7-7d59f4a88f8f", "subnet_id" : "2cb54324-ae63-4fbb-85b7-7d59f4a88f8f", "security_group_id" : "039a3s89-665a-43e2-9b4f-bda7d9ee148d" } } ], "alarm_notify" : { "alarm_to_user" : true, "topic_urn" : "urn:smn:cn-north-4:f2c2468c3ee7410c862a461ca073d2f2:test", "delay_time" : 60 }, "speed_limit" : [ { "begin" : "16:00", "end" : "15:59", "speed" : "10" } ], "policy_config" : { "ddl_trans" : false }, "node_info" : { "spec" : { "node_type" : "medium" } } }, { "id" : "dc6016cf-f3b6-4c2d-b4d7-5084b0fjb20r", "status" : "INCRE_TRANSFER_STARTED", "create_time" : "2022-11-05T15:32:22Z", "base_info" : { "name" : "DRS-2345", "job_type" : "sync", "engine_type" : "oracle-to-gaussdbv5", "job_direction" : "up", "task_type" : "FULL_INCR_TRANS", "net_type" : "vpn", "charging_mode" : "on_demand", "enterprise_project_id" : "0", "description" : "", "expired_days" : 14, "tags" : [ { "key" : "test", "value" : "test" } ] }, "source_endpoint" : [ { "db_type" : "oracle", "endpoint_type" : "offline", "endpoint_role" : "so", "endpoint" : { "id" : "6a2aea81-c01d-4313-b93e-6a17f9351c51", "endpoint_name" : "oracle", "ip" : "10.154.227.134", "db_port" : "1521", "db_user" : "ORACLE_USER", "db_name" : "serviceName.orcl" }, "ssl" : { "ssl_link" : false } } ], "target_endpoint" : [ { "db_type" : "gaussdbv5", "endpoint_type" : "cloud", "endpoint_role" : "ta", "endpoint" : { "id" : "f59e6118-da89-4fdb-9b98-65f56709928a", "endpoint_name" : "cloud_gaussdbv5", "instance_id" : "c2c7579bc09c490b9d8009db715aeb0ain14", "db_user" : "root" }, "cloud" : { "region" : "cn-north-4", "project_id" : "9dc8c0f3f74c4dbb23c29cf0318ee561", "az_code" : "cn-north-4a,cn-north-4g,cn-north-4c" }, "vpc" : { "vpc_id" : "2cb5d364-ae63-4fbb-85b7-7d59f4a88f8f", "subnet_id" : "2cb54324-ae63-4fbb-85b7-7d59f4a88f8f", "security_group_id" : "039a3s89-665a-43e2-9b4f-bda7d9ee148d" }, "ssl" : { "ssl_link" : false } } ], "policy_config" : { "ddl_trans" : false }, "node_info" : { "spec" : { "node_type" : "high" } } } ], "total_count" : 2 } 状态码: 400 Bad Request { "error_code" : "DRS.10000001", "error_msg" : "Failed." }
-
URI GET /v5/{project_id}/batch-async-jobs/{async_job_id} 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 租户在某一Region下的Project ID。 获取方法请参见获取项目ID。 async_job_id 是 String 批量异步创建的任务ID,由创建批量异步任务接口返回。 表2 Query参数 参数 是否必选 参数类型 描述 offset 否 Integer 偏移量,表示查询该偏移量后面的记录。 limit 否 Integer 查询返回记录的数量限制。
-
请求示例 查询任务同步进度。 https://{endpoint}/v5/054ba152d480d55b2f5dc0069e7ddef0/jobs/c7debc9c-8e09-4a5d-8dd6-cc44f78jb20r?type=progress 查询行对比任务概览 https://{endpoint}/v5/054ba152d480d55b2f5dc0069e7ddef0/jobs/c7debc9c-8e09-4a5d-8dd6-cc44f78jb20r?type=compare&query_type=overview&compare_type=line_compare&compare_task_id=1994b3e6-15ef-471e-8af1-7e2ed3e85b06&offset=0&limit=10 查询任务详情。 https://{endpoint}/v5/054ba152d480d55b2f5dc0069e7ddef0/jobs/c7debc9c-8e09-4a5d-8dd6-cc44f78jb20r?type=detail 查询数据对比任务列表 https://{endpoint}/v5/054ba152d480d55b2f5dc0069e7ddef0/jobs/c7debc9c-8e09-4a5d-8dd6-cc44f78jb20r?type=compare&compare_type=data_compare&query_type=list&limit=10&offset=0 查询同步日志。 https://{endpoint}/v5/054ba152d480d55b2f5dc0069e7ddef0/jobs/c7debc9c-8e09-4a5d-8dd6-cc44f78jb20r?type=log&offset=0&limit=10 查询测试连接结果。 https://{endpoint}/v5/054ba152d480d55b2f5dc0069e7ddef0/jobs/c7debc9c-8e09-4a5d-8dd6-cc44f78jb20r?type=network&query_id=669c9c19-99e3-4628-8c90-397136266701
-
请求参数 表3 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 发送的实体的MIME类型。推荐用户默认使用application/json,如果API是对象、镜像上传等接口,媒体类型可按照流类型的不同进行确定。 缺省值:application/json X-Auth-Token 是 String 从IAM服务获取的用户Token。 用户Token也就是调用获取用户Token接口的响应值,该接口是唯一不需要认证的接口。 请求响应成功后在响应消息头中包含的“X-Subject-Token”的值即为Token值。 X-Language 否 String 请求语言类型。 缺省值:en-us 枚举值: en-us zh-cn
-
响应示例 状态码: 200 OK 查询任务基本信息(type=detail) { "job" : { "id" : "c7debc9c-8e09-4a5d-8dd6-cc44f78jb20r", "status" : "CONFIGURATION", "create_time" : "2022-11-07T16:15:18Z", "base_info" : { "name" : "DRS-1234", "job_type" : "sync", "engine_type" : "oracle-to-gaussdbv5", "job_direction" : "up", "task_type" : "FULL_INCR_TRANS", "net_type" : "eip", "charging_mode" : "on_demand", "enterprise_project_id" : "0", "description" : "", "expired_days" : 14, "tags" : [ { "key" : "test", "value" : "test" } ] }, "source_endpoint" : [ { "db_type" : "oracle", "endpoint_type" : "offline", "endpoint_role" : "so", "endpoint" : { "id" : "f59e6118-da89-4fdb-9b98-65f56709928a", "endpoint_name" : "oracle", "ip" : "10.154.217.239", "db_port" : "1521", "db_user" : "ORACLE_USER", "db_name" : "serviceName.orcl" }, "ssl" : { "ssl_link" : false } } ], "target_endpoint" : [ { "db_type" : "gaussdbv5", "endpoint_type" : "cloud", "endpoint_role" : "ta", "endpoint" : { "id" : "10deb576-8885-473b-a213-4d76e668dc0d", "endpoint_name" : "cloud_gaussdbv5", "instance_id" : "c2c7579bc09c490b9d8009db715aeb0ain14", "db_user" : "root" }, "cloud" : { "region" : "cn-north-4", "project_id" : "9dc8c0f3f74c4dbb23c29cf0318ee561", "az_code" : "cn-north-4a,cn-north-4g,cn-north-4c" }, "vpc" : { "vpc_id" : "2cb5d364-ae63-4fbb-85b7-7d59f4a88f8f", "subnet_id" : "2cb54324-ae63-4fbb-85b7-7d59f4a88f8f", "security_group_id" : "039a3s89-665a-43e2-9b4f-bda7d9ee148d" } } ], "alarm_notify" : { "alarm_to_user" : true, "topic_urn" : "urn:smn:cn-north-4:f2c2468c3ee7410c862a461ca073d2f2:test", "delay_time" : 60 }, "speed_limit" : [ { "begin" : "16:00", "end" : "15:59", "speed" : "10" } ], "policy_config" : { "ddl_trans" : false }, "node_info" : { "spec" : { "node_type" : "medium" } } } } 状态码: 400 Bad Request { "error_code" : "DRS.10000010", "error_msg" : "Job does not exist, please check job ID." }
-
URI GET /v5/{project_id}/jobs/{job_id} 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 租户在某一Region下的Project ID。 获取方法请参见获取项目ID。 job_id 是 String 任务ID。 表2 Query参数 参数 是否必选 参数类型 描述 type 是 String 任务详情类型。取值: detail:任务基本信息。 network:测试连接结果信息,需配合query_id参数一起查询。 precheck:预检查结果信息,需配合query_id参数一起查询。 progress:任务进度信息。 log:任务日志信息,支持分页查询参数offset与limit。 compare:查询对比任务。 file:对象导入信息。 is_writable:目标库解除只读结果。 cloud_connection:录制回放他云连通性测试,需配合query_id参数一起查询。 枚举值: detail network precheck progress log compare file is_writable cloud_connection query_id 否 String 通过指定Query ID查询任务详情。 说明:部分type类型的任务详情,需要通过触发该操作的请求返回的query_id进行操作结果查询。 offset 否 Integer 偏移量,表示查询该偏移量后面的记录。 说明:部分type类型的任务详情支持分页查询,可以通过传递该参数进行分页控制。 limit 否 Integer 查询返回记录的数量限制。 说明:部分type类型的任务详情支持分页查询,可以通过传递该参数进行分页控制。 compare_type 否 String 对比任务类型,type参数是compare时必填。取值: object_compare:对象对比。 line_compare:行对比。 content_compare:内容对比。 data_compare:数据对比。 枚举值: object_compare line_compare content_compare data_compare query_type 否 String 查询对比内容,type参数是compare时必填。取值: overview:对比任务概览。 list:数据对比任务列表。 detail:对比详情。 diff:不一致详情。 枚举值: overview list detail diff object_type 否 String 查询对象对比详情类型。取值: DB:库级对比详情。 TABLE:表级对比详情。 INDEX:索引对比详情。 枚举值: DB TABLE INDEX compare_task_id 否 String 对比任务ID。 source_db_name 否 String 数据对比源库名称。 target_db_name 否 String 数据对比目标库名称。 compare_detail_type 否 String 对比结果类型。取值: compare:对比完成。 uncompare:无法对比。 枚举值: compare uncompare
-
响应参数 状态码: 200 表20 响应Body参数 参数 参数类型 描述 id String 任务ID。 name String 任务名称。 status String 任务状态。 create_time String 任务创建时间。 is_clone_job String 是否为克隆任务。 状态码: 400 表21 响应Body参数 参数 参数类型 描述 error_code String 错误码。 最小长度:12 最大长度:12 error_msg String 错误描述。 最小长度:1 最大长度:512
-
请求示例 创建Oracle到 GaussDB 分布式版按需实时同步任务,任务模式为全量+增量,公网网络类型。 https://{endpoint}/v5/054ba152d480d55b2f5dc0069e7ddef0/jobs { "job" : { "base_info" : { "name" : "DRS-1234", "job_type" : "sync", "engine_type" : "oracle-to-gaussdbv5", "job_direction" : "up", "task_type" : "FULL_INCR_TRANS", "net_type" : "eip", "charging_mode" : "on_demand", "enterprise_project_id" : "0", "description" : "", "expired_days" : "14", "tags" : [ { "key" : "test", "value" : "test" } ] }, "source_endpoint" : [ { "db_type" : "oracle", "endpoint_type" : "offline", "endpoint_role" : "so", "endpoint" : { "endpoint_name" : "oracle", "ip" : "10.154.217.239", "db_port" : "1521", "db_user" : "ORACLE_USER", "db_name" : "serviceName.orcl", "db_password" : "******" }, "ssl" : { "ssl_link" : false } } ], "target_endpoint" : [ { "db_type" : "gaussdbv5", "endpoint_type" : "cloud", "endpoint_role" : "ta", "endpoint" : { "endpoint_name" : "cloud_gaussdbv5", "instance_id" : "c2c7579bc09c490b9d8009db715aeb0ain14", "db_user" : "root", "db_password" : "******" }, "cloud" : { "region" : "cn-north-4", "project_id" : "9dc8c0f3f74c4dbb23c29cf0318ee561", "az_code" : "cn-north-4a,cn-north-4c,cn-north-4g" }, "vpc" : { "vpc_id" : "2cb5d364-ae63-4fbb-85b7-7d59f4a88f8f", "subnet_id" : "2cb54324-ae63-4fbb-85b7-7d59f4a88f8f", "security_group_id" : "039a3s89-665a-43e2-9b4f-bda7d9ee148d" } } ], "node_info" : { "spec" : { "node_type" : "medium" }, "vpc" : { "vpc_id" : "2cb5d364-ae63-4fbb-85b7-7d59f4a88f8f", "subnet_id" : "2cb54324-ae63-4fbb-85b7-7d59f4a88f8f" } } } }
-
响应示例 状态码: 200 OK { "id" : "c7debc9c-8e09-4a5d-8dd6-cc44f78jb20r", "name" : "DRS-1234", "status" : "CREATING", "create_time" : "2022-11-07T16:15:18Z", "is_clone_job": "false" } 状态码: 400 Bad Request { "error_code" : "DRS.10000001", "error_msg" : "Failed." }
-
迁移准备 权限准备: 当使用 DRS 将本地数据库的数据迁移到本云DDS实例时,在不同迁移类型情况下,对源数据库和目标数据库的账号权限要求如表2所示: 表2 迁移账号权限 迁移类型 全量迁移 全量+增量迁移 源数据库 副本集:连接源数据库的用户需要对待迁移库有read权限。 单节点:连接源数据库的用户需要对待迁移库有read权限。 集群:连接源数据库的用户需要对待迁移库有read权限,对config数据库有read权限。 如果需要迁移源数据库用户和角色信息,连接源数据库的用户需要对admin数据库的系统表system.users,system.roles有读权限。 副本集:连接源数据库的用户需要对待迁移库有read权限,对local数据库有read权限。 单节点:连接源数据库的用户需要对待迁移库有read权限,对local数据库有read权限。 集群:连接源数据库mongos节点的用户需要对待迁移库有read权限,对config数据库有read权限, 连接源数据库分片节点的用户需要对admin数据库有readAnyDatabase权限,对local数据库有read权限。 如果需要迁移源数据库用户和角色信息,连接源数据库的用户需要对admin数据库的系统表system.users,system.roles有读权限。 目标数据库 连接目标数据库的用户需要对admin数据库有dbAdminAnyDatabase权限,对目标数据库有readWrite权限。对于目标数据库是集群的实例,迁移账号还要有对config数据的读权限 源数据库的权限设置: 需要确保源数据库MongoDB的账号具备表2的权限,若权限不足,需要在源数据库端创建高权限的账号。 目标数据库的权限设置: 本云DDS实例使用初始账号即可。 网络准备: 源数据库的网络设置: 本地MongoDB数据库实时迁移至本云DDS的场景,一般可以使用VPN网络和公网网络两种方式进行迁移,您可以根据实际情况为本地MongoDB数据库开放公网访问或建立VPN访问。一般推荐使用公网网络进行迁移,该方式下的数据迁移过程较为方便和经济。 目标数据库的网络设置: 若通过VPN访问,请先开通VPN服务,确保源数据库和目标DDS网络互通。 若通过公网网络访问,目标DDS不需要进行设置。 安全规则准备: 源数据库的白名单设置: 若通过公网网络进行迁移,源数据库MongoDB实例需要将具体的DRS迁移实例的弹性公网IP添加到其网络白名单中,确保源数据库MongoDB实例可以与上述弹性公网IP连通。在设置网络白名单之前需要获取DRS迁移实例,具体方法如下: 迁移实例创建成功后,可在“源库及目标库”页面获取DRS迁移实例的弹性公网IP。如图4所示: 图4 迁移实例公网弹性IP 以上讲述的是精细配置白名单的方法,还有一种简单设置白名单的方法,在安全允许的情况下,可以将源数据库MongoDB实例的网络白名单设置为0.0.0.0/0,代表允许任何IP地址访问该实例。 若通过VPN网络进行迁移,源库需要将DRS迁移实例的私有IP添加到其网络白名单内,确保源端和目标端网络互通。 上述的网络白名单是为了进行数据迁移设置的,迁移结束后可以删除。 目标数据库安全组规则设置: 目标数据库默认与DRS迁移实例处在同一个VPC,网络是互通的,DRS可以直接写入数据到目标数据库,不需要进行任何设置。 其他事项准备: 由于迁移过程不会迁移MongoDB数据库的用户信息以及相关参数,需要自行将上述信息导出后手动添加到目标DDS中。
-
资源规划 表1 资源规划 类别 子类 规划 备注 VPC VPC名称 vpc-dds 自定义,易理解可识别。 所属Region 华南-广州 选择和自己业务区最近的Region,减少网络时延。 可用区 可用区一 - 子网网段 10.0.0.0/24 子网选择时建议预留足够的网络资源。 子网名称 subnet-default 自定义,易理解可识别。 本地MongoDB 数据库版本 MongoDB 4.4 自定义,易理解可识别。 DDS DDS 实例名 dds-test 自定义,易理解可识别。 数据库引擎 DDS - 兼容的数据库版本 4.4 - 可用区类型 单可用区 - 可用区 可用区一 - 性能规格 增强Ⅱ型 - CPU架构 X86 8 vCPUs | 32GB - DRS迁移任务 迁移任务名 DRS-dds 自定义。 源数据库引擎 MongoDB 本示例中源数据库为自建MongoDB,即在华为云弹性云服务器上安装社区版MongoDB。 目标数据库引擎 DDS 本示例中目标数据库为华为云DDS实例。 网络类型 公用网络 本示例中采用公用网络。
-
GaussDB(for MySQL)产品优势 性能强悍:采用计算与存储分离,日志即数据架构,RDMA网络。对于某些业务负载,吞吐量最高可提升至开源MySQL7倍。 弹性扩展:1写15只读节点,分钟级添加只读实例,规格升降级。 高可靠性:跨AZ部署,数据三副本,共享分布式存储,RPO为0,秒级故障倒换。 安全防护:采用共享分布式存储,故障秒级恢复,数据0丢失;采用VPC、安全组、SSL连接和 数据加密 等严格控制安全访问。 高兼容性:兼容MySQL,应用无需改造即可轻松迁移上云。 海量存储:华为自研DFV分布式存储,容量高达128TB,。
-
方案架构 本示例中,数据库源端为E CS 自建MySQL,目的端为GaussDB(for MySQL)实例,同时假设ECS和GaussDB(for MySQL)实例在同一个VPC中。部署架构如图1所示。 如果自建MySQL和GaussDB(for MySQL)实例不在同一个VPC内,相比于相同VPC的情况,需要配置两个VPC的对等连接,部署架构图如图2所示。 图1 同一VPC的部署架构 图2 不同VPC场景的部署架构
-
迁移准备 权限准备: 当使用 DRS 将本地数据库的数据迁移到本云云数据库 RDS for MySQL 实例时,在不同迁移类型情况下,对源数据库和目标数据库的账号权限要求如表1所示: 表1 迁移账号权限 迁移类型 全量迁移 全量+增量迁移 源数据库 SELECT、SHOW VIEW、EVENT。 SELECT、SHOW VIEW、EVENT、LOCK TABLES、REPLICATION SLAVE、REPLICATION CLIENT。 目标数据库 SELECT、CREATE、ALTER、DROP、DELETE、INSERT、UPDATE、INDEX、EVENT、CREATE VIEW、CREATE ROUTINE、TRIGGER、REFEREN CES 、WITH GRANT OPTION。 当目标库为8.0.14-8.0.18版本时,还需要有SESSION_VARIABLES_ADMIN权限。 用户迁移时,需要有mysql库的SELECT、INSERT、UPDATE、DELETE权限。 源数据库的权限设置: 需要确保源数据库MySQL的账号具备表1的权限,若权限不足,需要在源数据库端创建高权限的账号。 目标数据库的权限设置: 本云云数据库 RDS for MySQL使用初始账号即可。 网络准备: 源数据库的网络设置: 本地MySQL数据库实时迁移至本云云数据库 RDS for MySQL的场景,一般可以使用VPN网络和公网网络两种方式进行迁移,您可以根据实际情况为本地MySQL数据库开放公网访问或建立VPN访问。一般推荐使用公网网络进行迁移,该方式下的数据迁移过程较为方便和经济。 目标数据库的网络设置: 若通过VPN访问,请先开通华为VPN服务,确保源数据库MySQL和目标端本云云数据库 RDS for MySQL的网络互通。 若通过公网网络访问,本云云数据库 RDS for MySQ L实例 不需要进行任何设置。 安全规则准备: 源数据库的安全规则设置: 若通过公网网络进行迁移,源数据库MySQL需要将DRS迁移实例的弹性公网IP添加到其网络白名单内,使源数据库与本云的网络互通。在设置网络白名单之前,需要获取DRS迁移实例的弹性公网IP,具体方法如下: DRS迁移实例创建成功后,可在“源库及目标库”页面获取DRS迁移实例的弹性公网IP。 图4 迁移实例EIP 若通过VPN网络进行迁移,源数据库MySQL需要将DRS迁移实例的私有IP添加到其网络白名单内,使源数据库与本云的网络互通。DRS迁移实例创建成功后,可在“源库及目标库”页面获取DRS迁移实例的私有IP。 以上白名单是为了进行迁移针对性设置的,迁移结束后可以删除。 目标数据库安全组规则设置: 目标数据库默认与DRS迁移实例处在同一个VPC,网络是互通的,DRS可以直接写入数据到目标数据库,不需要进行任何设置。 其他事项准备。 DRS支持部分与业务和性能强相关的参数迁移,具体参数列表请参见参数列表。若涉及其他参数需要根据用户具体的业务进行手动设置。
更多精彩内容
CDN加速
GaussDB
文字转换成语音
免费的服务器
如何创建网站
域名网站购买
私有云桌面
云主机哪个好
域名怎么备案
手机云电脑
SSL证书申请
云点播服务器
免费OCR是什么
电脑云桌面
域名备案怎么弄
语音转文字
文字图片识别
云桌面是什么
网址安全检测
网站建设搭建
国外CDN加速
SSL免费证书申请
短信批量发送
图片OCR识别
云数据库MySQL
个人域名购买
录音转文字
扫描图片识别文字
OCR图片识别
行驶证识别
虚拟电话号码
电话呼叫中心软件
怎么制作一个网站
Email注册网站
华为VNC
图像文字识别
企业网站制作
个人网站搭建
华为云计算
免费租用云托管
云桌面云服务器
ocr文字识别免费版
HTTPS证书申请
图片文字识别转换
国外域名注册商
使用免费虚拟主机
云电脑主机多少钱
鲲鹏云手机
短信验证码平台
OCR图片文字识别
SSL证书是什么
申请企业邮箱步骤
免费的企业用邮箱
云免流搭建教程
域名价格