活动

天翼云最新优惠活动,涵盖免费试用,产品折扣等,助您降本增效!
热门活动
  • 安全隔离版OpenClaw NEW OpenClaw云服务器专属“龙虾“套餐低至1.5折起
  • 青云志云端助力计划 NEW 一站式科研助手,海外资源安全访问平台,助力青年翼展宏图,平步青云
  • 出海产品促销专区 NEW 爆款云主机低至2折,高性价比,不限新老速来抢购!
  • 天翼云信创专区 NEW “一云多芯、一云多态”,国产化软件全面适配,国产操作系统及硬件芯片支持丰富
  • 中小企业服务商合作专区 国家云助力中小企业腾飞,高额上云补贴重磅上线
  • 云上钜惠 爆款云主机全场特惠,2核4G只要1.8折起!
  • 天翼云奖励推广计划 加入成为云推官,推荐新用户注册下单得现金奖励
免费活动
  • 免费试用中心 HOT 多款云产品免费试用,快来开启云上之旅
  • 天翼云用户体验官 NEW 您的洞察,重塑科技边界

息壤智算

领先开放的智算服务平台,提供算力、平台、数据、模型、应用“五位一体”智算服务体系,构建全流程的AI基础设施能力
AI Store
  • 算力市场
  • 模型市场
  • 应用市场
  • MCP市场
公共算力服务
  • 裸金属
  • 定制裸金属
训推服务
  • 模型开发
  • 训练任务
  • 服务部署
模型推理服务
  • 模型广场
  • 体验中心
  • 服务接入
应用托管
  • 应用实例
科研助手
  • 科研智能体
  • 科研服务
  • 开发机
  • 并行计算
大模型
  • DeepSeek-V3.1
  • DeepSeek-R1-0528
  • DeepSeek-V3-0324
  • Qwen3-235B-A22B
  • Qwen3-32B
智算一体机
  • 智算一体机
模型适配专家服务
  • 模型适配专家服务
算力服务商
  • 入驻算力服务商

应用商城

天翼云精选行业优秀合作伙伴及千余款商品,提供一站式云上应用服务
进入甄选商城进入云市场进入AI Store创新解决方案公有云生态专区智云上海应用生态专区
建站工具
  • 新域名服务
  • SSL证书
  • 翼建站
企业办公
  • 安全邮箱
  • WPS 365 天翼云版
  • 天翼企业云盘(标准服务版)
灾备迁移
  • 云管家2.0
  • 翼备份(SaaS版)

定价

协助您快速了解云产品计费模式、价格详情,轻松预估上云成本
价格计算器
  • 动态测算产品价格
定价策略
  • 快速了解计费模式

合作伙伴

天翼云携手合作伙伴,共创云上生态,合作共赢
天翼云生态合作中心
  • 天翼云生态合作中心
天翼云渠道合作伙伴
  • 天翼云代理渠道合作伙伴
天翼云服务合作伙伴
  • 天翼云集成商交付能力认证
天翼云应用合作伙伴
  • 天翼云云市场合作伙伴
  • 天翼云甄选商城合作伙伴
天翼云技术合作伙伴
  • 天翼云OpenAPI中心
天翼云培训认证
  • 天翼云学堂
  • 天翼云市场商学院
天翼云合作计划
  • 云汇计划
天翼信创云专区
  • 信创云专区
  • 适配互认证

开发者

开发者相关功能入口汇聚
技术社区
  • 专栏文章
  • 互动问答
  • 技术视频
资源与工具
  • OpenAPI中心
培训与认证
  • 天翼云学堂
  • 天翼云认证
开源社区
  • 魔乐社区
  • OpenTeleDB

支持与服务

为您提供全方位支持与服务,全流程技术保障,助您轻松上云,安全无忧
文档与工具
  • 文档中心
  • 新手上云
  • 自助服务
  • OpenAPI中心
定价
  • 价格计算器
  • 定价策略
基础服务
  • 售前咨询
  • 在线支持
  • 在线支持
  • 工单服务
  • 服务保障
  • 会员中心
增值服务
  • 红心服务
  • 首保服务
  • 客户支持计划
  • 专家技术服务
  • 备案管家
我要反馈
  • 建议与反馈
  • 用户体验官
信息公告
  • 客户公告

了解天翼云

天翼云秉承央企使命,致力于成为数字经济主力军,投身科技强国伟大事业,为用户提供安全、普惠云服务
品牌介绍
  • 关于天翼云
  • 智算云
  • 天翼云4.0
  • 新闻资讯
  • 天翼云APP
基础设施
  • 全球基础设施
  • 信任中心
最佳实践
  • 精选案例
  • 超级探访
  • 云杂志
  • 分析师和白皮书
  • 天翼云·创新直播间
市场活动
  • 2025智能云生态大会
  • 2024智算云生态大会
  • 2023云生态大会
  • 2022云生态大会
  • 天翼云中国行
天翼云
  • 活动
  • 息壤智算
  • 产品
  • 解决方案
  • 应用商城
  • 定价
  • 合作伙伴
  • 开发者
  • 支持与服务
  • 了解天翼云
      • 文档
      • 控制中心
      • 备案
      • 管理中心
      企业主机安全_相关内容
      • 视频直播有哪些访问控制策略
        本文介绍视频直播支持的访问控制策略。 天翼云视频直播支持如下访问控制策略: Referer防盗链和UA防盗链:根据HTTP请求头中的Referer字段或UserAgent字段对请求来源的域名及其他信息进行黑白名单控制,从而实现对用户身份的识别和过滤。Referer防盗链支持控制台自助操作,如需配置请参见:Referer防盗链。UA防盗链暂不支持自助操作,如需配置请提交工单。 IP黑白名单:通过设置黑白名单对来源IP进行相应限制。IP黑白名单支持控制台自助操作,如何配置请参见:IP黑白名单。 区域访问控制:通过允许或者拒绝指定区域的用户访问,实现访问控制。区域访问控制暂不支持自助操作,如需配置请提交工单。 时间戳防盗链:在主播推流或观众播放的URL中加上鉴权信息。主播请求直播推流或观众请求播放时,视频直播会对请求进行时效性判断,并对URL中携带的鉴权信息进行合法性判断,仅校验通过的请求予以响应,其它非法的访问将予以拒绝,从而有效地保护直播资源。更多详细信息请参见:URL鉴权。URL鉴权暂不支持自助操作,如需配置请提交工单。 远程鉴权:如果希望更安全的访问控制策略,您可通过远程鉴权实现。即由您自行搭建鉴权中心,视频直播将接收到的请求,转发到您搭建的鉴权中心进行鉴权,鉴权通过的才可以允许播放,不通过的则拒绝。更多详细信息请参见:远程鉴权。 HTTPS访问:您可以配置HTTPS证书,用户请求时通过HTTPS访问,从而使用户和直播节点之间使用HTTPS加密传输。HTTPS支持控制台自助操作,如何配置请参见:HTTPS配置。
        来自:
        帮助文档
        视频直播
        常见问题
        直播安全类
        视频直播有哪些访问控制策略
      • 操作类
        DRS界面信息重叠是什么原因 DRS界面出现信息重叠通常是页面缩放率过小导致的,建议将页面缩放率调整为100%即可显示正常。 MySQL源库设置了global binlogformat ROW没有立即生效 使用DRS进行MySQL的迁移时,必须确保源库的binlogformat是ROW格式的,否则就会导致任务失败甚至数据丢失。在源库设置了global级别的binlogformatROW之后,还需要中断之前所有的业务连接,因为设置之前的连接使用的还是非ROW格式的binlog写入。 安全设置global级binlogformatROW的步骤 步骤 1 通过MySQL官方客户端或者其它工具登录源数据库。 步骤 2 在源数据库上执行全局参数设置命令。 set global binlogformat ROW; 步骤 3 在源数据库上执行如下命令确认上面操作已执行成功。 select @@global.binlogformat; 步骤 4 您可以通过如下两种方式确保修改后的源库binlogformat格式立即生效。 方法一: 1. 选择一个非业务的时间段,中断当前数据库上的所有业务连接。 a. 通过如下命令查询当前数据库上的所有业务连接(所有的binlog Dump连接及当前连接除外)。 show processlist; b. 中断上面查出的所有业务连接。 说明 在上述操作未结束之前,请不要创建或者启动迁移任务,否则会导致数据不一致。 2. 为了避免源库binlogformat格式因为数据库重启失效,请在源库的启动配置文件(my.ini或my.cnf等)中添加或修改配置参数binlogformat并保存。 binlogformatROW 方法二: 3. 为了避免源库binlogformat格式因为数据库重启失效,请在源库的启动配置文件(my.ini或my.cnf等)中添加或修改配置参数binlogformat并保存。 binlogformatROW 4. 确保上述配置参数binlogformat添加或修改成功后,选择一个非业务时间段,重启源数据库即可。
        来自:
        帮助文档
        数据库复制
        常见问题
        操作类
      • 恢复Hive业务数据
        本章主要介绍翼MapReduce的恢复Hive业务数据功能。 操作场景 在用户意外修改、删除或需要找回数据时,系统管理员对Hive进行重大操作(如升级、重大数据调整等)后,系统数据出现异常或未达到预期结果,模块全部故障无法使用,或者迁移数据到新集群的场景中,需要对Hive进行恢复数据操作。 系统管理员可以通过FusionInsight Manager创建恢复Hive任务并恢复数据。只支持创建任务手动恢复数据。 Hive备份恢复功能不支持识别用户的Hive表、索引、视图等对象在业务和结构上存在的关联关系。用户在执行备份恢复任务时,需要根据业务场景管理统一的恢复点,防止影响业务正常运行。 须知 只支持进行数据备份时的系统版本与当前系统版本一致时的数据恢复。 当业务正常时需要恢复数据,建议手动备份最新管理数据后,再执行恢复数据操作。否则会丢失从备份时刻到恢复时刻之间的Hive数据。 对系统的影响 恢复过程中会停止用户认证,用户无法开始新的连接。 数据恢复后,会丢失从备份时刻到恢复时刻之间的数据。 数据恢复后,需要重新启动Hive的上层应用。 前提条件 如果需要从远端HDFS恢复数据,需要准备备集群。如果主集群部署为安全模式,且主备集群不是由同一个FusionInsight Manager管理,则必须配置系统互信,请参见配置跨Manager集群互信。如果主集群部署为普通模式,则不需要配置互信。 主备集群必须已配置跨集群拷贝,请参见启用集群间拷贝功能。 主备集群上的时间必须一致,而且主备集群上的NTP服务必须使用同一个时间源。 规划好恢复数据保存表的数据库,数据表在HDFS的保存位置,以及访问恢复数据的用户清单。 检查Hive备份文件保存路径。 停止Hive的上层应用。 登录FusionInsight Manager,请参见登录管理系统。
        来自:
        帮助文档
        翼MapReduce
        用户指南
        FusionInsight Manager操作指导(适用于3.x)
        备份恢复管理
        恢复数据
        恢复Hive业务数据
      • ALM-27004 DBService主备数据不同步
        参数名称 参数含义 来源 产生告警的集群名称。 服务名 产生告警的服务名称。 角色名 产生告警的角色名称。 主机名 产生告警的主机名。 Local DBService HA Name 本地DBService HA名称。 Peer DBService HA Name 对端DBService HA名称。 SYNCPERCENT 同步百分比。
        来自:
        帮助文档
        翼MapReduce
        用户指南
        FusionInsight Manager操作指导(适用于3.x)
        告警参考(适用于MRS 3.x版本)
        ALM-27004 DBService主备数据不同步
      • ALM-27003 DBService主备节点间心跳中断
        参数名称 参数含义 来源 产生告警的集群名称。 服务名 产生告警的服务名称。 角色名 产生告警的角色名称。 主机名 产生告警的主机名。 Local DBService HA Name 本地DBService HA名称。 Peer DBService HA Name 对端DBService HA名称。
        来自:
        帮助文档
        翼MapReduce
        用户指南
        FusionInsight Manager操作指导(适用于3.x)
        告警参考(适用于MRS 3.x版本)
        ALM-27003 DBService主备节点间心跳中断
      • 管理KMS服务
        升级KMS服务版本 如果您购买了基础版服务,您可以根据业务需求升级至企业版,企业版支持国密算法,同时支持硬件保护。 1. 登录密钥管理服务控制台。 2. 在页面最上方的导航栏的资源池下拉列表,选择服务所在的区域。 3. 在左侧导航栏,选择“服务管理”。 4. 在服务列表找到目标服务,点击操作列的“版本升级”。 5. 进入该服务的升级页面,确认服务信息无误后,勾选“我已阅读并同意《天翼云密钥管理产品服务协议》”后,点击“确认”后进入支付页面。 6. 完成订单支付,可在订单详情页查看订单状态,状态更新为“已完成”后代表版本升级成功。 退订KMS服务 如果您购买了KMS服务,在服务到期销毁前,您可以随时退订。 1. 登录密钥管理服务控制台。 2. 在页面最上方的导航栏的资源池下拉列表,选择服务所在的区域。 3. 在左侧导航栏,选择“服务管理”。 4. 在服务列表找到目标服务,点击操作列的“退订”。 5. 二次确认需要退订服务后,进入该服务的退订申请页面,确认退订服务信息,信息确认无误后选择退订原因,勾选“我已确认本次退订金额和相关费用”后,点击“退订”后即可进行退订。 6. 系统提示退订申请提交成功,可前往订单详情查看退订进度。
        来自:
        帮助文档
        密钥管理
        用户指南
        服务管理
        管理KMS服务
      • 安装GPU指标与RAID指标采集插件(Linux)
        本节主要介绍安装GPU指标与RAID指标采集插件(Linux) 操作场景 本章节指导用户安装指标采集插件,用于采集GPU类指标和RAID类指标。 说明 ECS支持GPU类指标,BMS暂不支持。 BMS支持RAID类指标,ECS暂不支持。 若Agent升级到1.0.5及以上版本,对应插件需使用最新的版本,否则会出现指标采集异常。 前提条件 已安装Agent并处于正常运行状态。 GPU类指标采集需弹性云主机支持GPU。 操作步骤 1. 使用root帐号,登录ECS。 说明 若要监控BMS的软RAID指标,请登录BMS。 以下以安装GPU插件为例,安装监控软RAID插件类似。 2. 执行以下命令,进入Agent安装路径。 cd /usr/local/telescope 3. 执行以下命令,创建plugins文件夹。 mkdir plugins 4. 执行以下命令,进入plugins文件夹。 cd plugins 5. 执行如下命令,下载采集插件脚本(以下以GPU插件为例)。 wget 说明 RAID插件地址路径: 以广州4资源池为例,RegionId为:cngdgz1 插件包地址为: GPU插件地址路径: 以广州4资源池为例,RegionId为:cngdgz1, 插件包地址为: 6. 执行如下命令,添加脚本执行权限。 chmod 755 gpucollector 7. 执行如下命令,新建conf.json文件并添加配置内容,配置插件路径和指标采集周期crontime(单位:秒)。 vi conf.json GPU指标插件配置 { "plugins": [ { "path": "/usr/local/telescope/plugins/gpucollector", "crontime": 60 } ] } RAID指标插件配置 { "plugins": [ { "path": "/usr/local/telescope/plugins/raidmonitor.sh", "crontime": 60 } ] } 说明 path路径后的参数为gpucollector和raidmonitor.sh分别为GPU插件和RAID插件配置内容。 插件采集周期为60s,若采集周期配置错误,会导致指标采集异常。 插件路径path请勿私自修改,否则指标采集异常。 8. 打开/usr/local/telescope/bin路径下的confces.json文件,新增配置项"EnablePlugin":true,开启插件采集开关。 { "Endpoint": "所在区域地址,默认无需修改", "EnablePlugin": true } 9. 执行如下命令,重启Agent。 /usr/local/telescope/telescoped restart
        来自:
        帮助文档
        云监控服务
        用户指南
        主机监控
        安装GPU指标与RAID指标采集插件(Linux)
      • ALM-12014 设备分区丢失
        参数名称 参数含义 来源 产生告警的集群或系统名称。 服务名 产生告警的服务名称。 角色名 产生告警的角色名称。 主机名 产生告警的主机名。 挂载目录名 产生告警的挂载目录名。 设备分区名 产生告警的设备分区名。
        来自:
        帮助文档
        翼MapReduce
        用户指南
        FusionInsight Manager操作指导(适用于3.x)
        告警参考(适用于MRS 3.x版本)
        ALM-12014 设备分区丢失
      • 云资源集成系统产品使用手册
        云资源集成系统产品使用手册 一、 产品概述 1.1 产品介绍 云资源集成管理系统CRIMS 是一款数据中心资产监测管理软件,旨在帮助数据中 心管理相关人员或资产所有人解决资产管理混乱、资产状态未知、已有资产使用不明确 等问题。 本系统以功能模块做标准版及增购版的区分,标准版含:首页、监测、数据分析、 发现、告警、系统;增购版另有能耗、资产、机房、报修、专线、存储、自动装机、vKVM、 控制管理模块可组合加购。 1.2 产品核心能力 CRIMS 采用领先的带外与带内结合管理技术实现对业务硬件与软件的全方面监控, 可对数据中心 IT 基础设施进行监测、管理运营,为软硬件设备提供全生命周期管理,实 现设备从采购、安装使用,再到运维、报废的全过程服务。并对监测数据进行分析、管 理,为日常运营提供支持。CRIMS 无需在每台服务器上安装代理软件,减少对操作系 统的影响。可以有效帮助用户减少繁琐、重复、费时的各项运维工作,保障数据中心设 备安全、稳定运行,同时降低数据中心运营成本。 1.3 产品优势 CRIMS 硬件监控方面支持各个品牌各个型号的小型机、刀片服务器、刀箱、塔式& 机柜式服务器的硬件状态和各个厂家的高端存储、中端存储、低端存储、虚拟化存储、 虚拟带库、物理带库等存储资源,硬件监控内容包括:电源、风扇、内置磁盘、CPU、 内存、网卡、HBA 卡、拓展模块等服务器各个部件运行状态,配置信息,电源、风扇、 电池、磁盘柜、硬盘、控制器、Array、机械手、磁带机等; CRIMS 软件监控方面支持监控主流操作系统:Linux,Windows,AIX,AS400, ScoUnix,Solaris,HP Unix,国产 UOS 的服务状态;主流云平台:VMWare,Red Hat, FusionCompute,Amazon,阿里云,Docker 的虚 机状态;主流数据库:DB, MySQL,Oracle,Oracle Rac,Oscar,PostgreSQL,SQLServer,SyBase 的库状态,主流应用 程序:AD,Apache,HACMP,IBM MQ,IIS,Nginx,PowerHA,RHCS,Resin, Exchange,JBoss,JBoss EAP,Kafka,Lotus,Memcached,PolyCom,Redis,Tomcat, Tuxedo,Url Recored,WebLogic,Zookeeper 的进程状态,软件监控内容包括:时间 校验,文件数量,进程数量,IO 性能,网络速率,服务状态,Lun,Cache 统计,控制 器,,FC 端口,PCIe 端口,FCoE 端口,NE 节点,异网 IP,文件系统,线程缓存,缓 冲排序,Query 缓存,访问量(QPS),数据库引擎,主备复制,表空间信息,数据目录等。 更多产品使用具体方法请下载附件查看。 云资源集成系统产品使用手册part1智能运维标准服务.pdf
        来自:
        帮助文档
        轻量型云主机
        产品简介
        应用使用手册
        云资源集成系统产品使用手册
      • Java调用示例
        1. com.ffcs.ebp.ebpsdk.common.Response java package com.ffcs.ebp.ebpsdk.common; import java.util.Map; public class Response { private int statusCode; private String body; private Map headers; public int getStatusCode() { return statusCode; } public void setStatusCode(int statusCode) { this.statusCode statusCode; } public String getBody() { return body; } public void setBody(String body) { this.body body; } public Map getHeaders() { return headers; } public void setHeaders(Map headers) { this.headers headers; } } 2. com.ffcs.ebp.ebpsdk.YunSign java package com.ffcs.ebp.ebpsdk; import com.ffcs.ebp.ebpsdk.common.Response; import org.apache.commons.lang.StringUtils; import org.apache.http.Header; import org.apache.http.HttpEntity; import org.apache.http.client.config.AuthSchemes; import org.apache.http.client.config.CookieSpecs; import org.apache.http.client.config.RequestConfig; import org.apache.http.client.methods.; import org.apache.http.config.Registry; import org.apache.http.config.RegistryBuilder; import org.apache.http.conn.socket.ConnectionSocketFactory; import org.apache.http.conn.socket.PlainConnectionSocketFactory; import org.apache.http.conn.ssl.NoopHostnameVerifier; import org.apache.http.conn.ssl.SSLConnectionSocketFactory; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.impl.conn.PoolingHttpClientConnectionManager; import org.apache.http.util.EntityUtils; import javax.crypto.Mac; import javax.crypto.spec.SecretKeySpec; import javax.net.ssl.SSLContext; import javax.net.ssl.TrustManager; import javax.net.ssl.X509TrustManager; import java.io.; import java.net.URLEncoder; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.security.KeyManagementException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.security.cert.X509Certificate; import java.text.SimpleDateFormat; import java.util.; public class YunSign { private String url; private String body; private String ak; private String sk; private String uuId; private int temp; private String contentType; private String queryStr; private Map headerMap; private String afterQuery; public YunSign(String url, String ak, String sk, String uuId, String body, int temp, String contentType, String queryStr, Map headerMap) { this.url url; if(body.equals("{}")){ body ""; } this.body body; this.ak ak; this.sk sk; this.uuId uuId; this.temp temp; this.contentType contentType; this.queryStr queryStr; this.headerMap headerMap; } public Response toDo(String method, int connectTimeout, int connectionRequestTimeout, int socketTimeout) { Response response null; method method.toUpperCase(); switch (method) { case "POST": response doPost(connectTimeout, connectionRequestTimeout, socketTimeout); break; case "GET": if (StringUtils.isNotEmpty(this.body)) { response sendJsonByGetReq(connectTimeout, connectionRequestTimeout, socketTimeout); } else { response doGet(connectTimeout, connectionRequestTimeout, socketTimeout); } break; case "DELETE": if (StringUtils.isNotEmpty(this.body)) { response sendJsonByDeleteReq(connectTimeout, connectionRequestTimeout, socketTimeout); } else { response doDelete(connectTimeout, connectionRequestTimeout, socketTimeout); } break; case "PUT": response doPut(connectTimeout, connectionRequestTimeout, socketTimeout); break; case "PATCH": response doPatch(connectTimeout, connectionRequestTimeout, socketTimeout); break; case "HEAD": response doHead(connectTimeout, connectionRequestTimeout, socketTimeout); break; } return response; } private String getSign(Date eopDate) { String calculateContentHash getSHA256(body); //报文原封不动进行sha256摘要 // System.out.println("calculateContentHash:" + calculateContentHash); SimpleDateFormat TIMEFORMATTER new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'"); SimpleDateFormat DATEFORMATTER new SimpleDateFormat("yyyyMMdd"); String singerDate TIMEFORMATTER.format(eopDate); String singerDd DATEFORMATTER.format(eopDate); //header的key按照26字母进行排序, 以&作为连接符连起来 try { String CampmocalHeader String.format("ctyuneoprequestid:%sneopdate:%sn", this.uuId, singerDate); String sigture CampmocalHeader + "n" + this.afterQuery + "n" + calculateContentHash; // System.out.println("sigture:" + sigture); byte[] ktime HmacSHA256(singerDate.getBytes(), sk.getBytes()); // System.out.println("ktime:" + HexUtils.bytes2Hex(ktime)); byte[] kAk HmacSHA256(ak.getBytes(), ktime); // System.out.println("kAk:" + HexUtils.bytes2Hex(kAk)); byte[] kdate HmacSHA256(singerDd.getBytes(), kAk); // System.out.println("kdate:" + HexUtils.bytes2Hex(kdate)); String Signature Base64.getEncoder().encodeToString(HmacSHA256(sigture.getBytes("UTF8"), kdate)); // System.out.println("Signature:" + Signature); String signHeader String.format("%s Headersctyuneoprequestid;eopdate Signature%s", ak, Signature); // System.out.println("signHeader:" + signHeader); return signHeader; } catch (Exception e) { e.printStackTrace(); } return null; } / 在调用SSL之前需要重写验证方法,取消检测SSL 创建ConnectionManager,添加Connection配置信息 @return HttpClient 支持https / private static CloseableHttpClient sslClient() { try { // 在调用SSL之前需要重写验证方法,取消检测SSL X509TrustManager trustManager new X509TrustManager() { @Override public X509Certificate[] getAcceptedIssuers() { return null; } @Override public void checkClientTrusted(X509Certificate[] xcs, String str) { } @Override public void checkServerTrusted(X509Certificate[] xcs, String str) { } }; SSLContext ctx SSLContext.getInstance(SSLConnectionSocketFactory.TLS); ctx.init(null, new TrustManager[]{trustManager}, null); SSLConnectionSocketFactory socketFactory new SSLConnectionSocketFactory(ctx, NoopHostnameVerifier.INSTANCE); // 创建Registry RequestConfig requestConfig RequestConfig.custom().setCookieSpec(CookieSpecs.STANDARDSTRICT) .setExpectContinueEnabled(Boolean.TRUE).setTargetPreferredAuthSchemes(Arrays.asList(AuthSchemes.NTLM, AuthSchemes.DIGEST)) .setProxyPreferredAuthSchemes(Arrays.asList(AuthSchemes.BASIC)).build(); Registry socketFactoryRegistry RegistryBuilder. create() .register("http", PlainConnectionSocketFactory.INSTANCE) .register("https", socketFactory).build(); // 创建ConnectionManager,添加Connection配置信息 PoolingHttpClientConnectionManager connectionManager new PoolingHttpClientConnectionManager(socketFactoryRegistry); CloseableHttpClient closeableHttpClient HttpClients.custom().setConnectionManager(connectionManager) .setDefaultRequestConfig(requestConfig).build(); return closeableHttpClient; } catch (KeyManagementException ex) { throw new RuntimeException(ex); } catch (NoSuchAlgorithmException ex) { throw new RuntimeException(ex); } } public Response doGet(int connectTimeout, int connectionRequestTimeout, int socketTimeout) { CloseableHttpClient httpClient null; CloseableHttpResponse response null; Response result new Response(); try { // 通过址默认配置创建一个httpClient实例 if (temp 0) {//绕过SSL httpClient sslClient(); } else { httpClient HttpClients.createDefault(); } String query this.queryStr; this.afterQuery encodeQueryStr(query); //创建HttpGet远程连接实例 HttpGet httpGet; if (StringUtils.isNotEmpty(this.afterQuery)) { httpGet new HttpGet(this.url + "?" + this.afterQuery); } else { httpGet new HttpGet(this.url); } // 设置请求头信息,鉴权 SimpleDateFormat TIMEFORMATTER new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'"); Date eopDate new Date(); httpGet.setHeader("ContentType", this.contentType); httpGet.setHeader("ctyuneoprequestid", this.uuId); httpGet.setHeader("EopAuthorization", getSign(eopDate)); httpGet.setHeader("Eopdate", TIMEFORMATTER.format(eopDate)); if (this.headerMap ! null) { for (String key : this.headerMap.keySet()) { if (StringUtils.isNotEmpty(key)) { httpGet.setHeader(key, this.headerMap.get(key).toString()); } } } System.out.println("请求头部 "); for (Header header : httpGet.getAllHeaders()) { System.out.println(header.getName() + ":" + header.getValue()); } System.out.println(); // 设置配置请求参数 RequestConfig requestConfig RequestConfig.custom().setConnectTimeout(connectTimeout)// 连接主机服务超时时间 .setConnectionRequestTimeout(connectionRequestTimeout)// 请求超时时间 .setSocketTimeout(socketTimeout)// 数据读取超时时间 .build(); // 为httpGet实例设置配置 httpGet.setConfig(requestConfig); // 执行get请求得到返回对象 response httpClient.execute(httpGet); // 通过返回对象获取返回数据 HttpEntity entity response.getEntity(); // 通过EntityUtils中的toString方法将结果转换为字符串 result.setBody(EntityUtils.toString(entity, "UTF8")); result.setStatusCode(response.getStatusLine().getStatusCode()); Map headerMap new HashMap (); for (Header header : response.getAllHeaders()) { headerMap.put(header.getName(), header.getValue()); } result.setHeaders(headerMap); } catch (Exception e) { e.printStackTrace(); } finally { // 关闭资源 if (null ! response) { try { response.close(); } catch (IOException e) { e.printStackTrace(); } } if (null ! httpClient) { try { httpClient.close(); } catch (IOException e) { e.printStackTrace(); } } } return result; } public Response sendJsonByGetReq(int connectTimeout, int connectionRequestTimeout, int socketTimeout) { Response result new Response(); CloseableHttpClient client null; CloseableHttpResponse response null; try { // 通过址默认配置创建一个httpClient实例 if (temp 0) {//绕过SSL client sslClient(); } else { client HttpClients.createDefault(); } String query this.queryStr; this.afterQuery encodeQueryStr(query); // 创建HttpGetWithEntity远程连接实例 HttpGetWithEntity httpGetWithEntity; if (StringUtils.isNotEmpty(this.afterQuery)) { httpGetWithEntity new HttpGetWithEntity(this.url + "?" + this.afterQuery); } else { httpGetWithEntity new HttpGetWithEntity(this.url); } // 配置请求参数实例 RequestConfig requestConfig RequestConfig.custom().setConnectTimeout(connectTimeout)// 设置连接主机服务超时时间 .setConnectionRequestTimeout(connectionRequestTimeout)// 设置连接请求超时时间 .setSocketTimeout(socketTimeout)// 设置读取数据连接超时时间 .build(); // 为HttpGetWithEntity实例设置配置 httpGetWithEntity.setConfig(requestConfig); // 设置请求头 SimpleDateFormat TIMEFORMATTER new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'"); Date eopDate new Date(); httpGetWithEntity.setHeader("ContentType", this.contentType); httpGetWithEntity.setHeader("ctyuneoprequestid", this.uuId); httpGetWithEntity.setHeader("EopAuthorization", getSign(eopDate)); httpGetWithEntity.setHeader("Eopdate", TIMEFORMATTER.format(eopDate)); if (this.headerMap ! null) { for (String key : this.headerMap.keySet()) { if (StringUtils.isNotEmpty(key)) { httpGetWithEntity.setHeader(key, this.headerMap.get(key).toString()); } } } System.out.println("请求头部 "); for (Header header : httpGetWithEntity.getAllHeaders()) { System.out.println(header.getName() + ":" + header.getValue()); } System.out.println(); HttpEntity httpEntity new StringEntity(body, Charset.forName("UTF8")); httpGetWithEntity.setEntity(httpEntity); //执行请求操作,并拿到结果(同步阻塞) response client.execute(httpGetWithEntity); //获取结果实体 HttpEntity entity response.getEntity(); result.setBody(EntityUtils.toString(entity, "UTF8")); result.setStatusCode(response.getStatusLine().getStatusCode()); Map headerMap new HashMap (); for (Header header : response.getAllHeaders()) { headerMap.put(header.getName(), header.getValue()); } result.setHeaders(headerMap); } catch (Exception e) { e.printStackTrace(); } finally { // 关闭资源 if (null ! response) { try { response.close(); } catch (IOException e) { e.printStackTrace(); } } if (null ! client) { try { client.close(); } catch (IOException e) { e.printStackTrace(); } } } return result; } public Response doPost(int connectTimeout, int connectionRequestTimeout, int socketTimeout) { CloseableHttpClient httpClient null; CloseableHttpResponse httpResponse null; Response result new Response(); try { // 创建httpClient实例 if (temp 0) {//绕过SSL httpClient sslClient(); } else { httpClient HttpClients.createDefault(); } String query this.queryStr; this.afterQuery encodeQueryStr(query); // 创建httpPost远程连接实例 HttpPost httpPost; if (StringUtils.isNotEmpty(this.afterQuery)) { httpPost new HttpPost(this.url + "?" + this.afterQuery); } else { httpPost new HttpPost(this.url); } // 配置请求参数实例 RequestConfig requestConfig RequestConfig.custom().setConnectTimeout(connectTimeout)// 设置连接主机服务超时时间 .setConnectionRequestTimeout(connectionRequestTimeout)// 设置连接请求超时时间 .setSocketTimeout(socketTimeout)// 设置读取数据连接超时时间 .build(); // 为httpPost实例设置配置 httpPost.setConfig(requestConfig); // 设置请求头 SimpleDateFormat TIMEFORMATTER new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'"); Date eopDate new Date(); httpPost.setHeader("ContentType", this.contentType); httpPost.setHeader("ctyuneoprequestid", this.uuId); httpPost.setHeader("EopAuthorization", getSign(eopDate)); httpPost.setHeader("Eopdate", TIMEFORMATTER.format(eopDate)); if (this.headerMap ! null) { for (String key : this.headerMap.keySet()) { if (StringUtils.isNotEmpty(key)) { httpPost.setHeader(key, this.headerMap.get(key).toString()); } } } System.out.println("请求头部 "); for (Header header : httpPost.getAllHeaders()) { System.out.println(header.getName() + ":" + header.getValue()); } System.out.println(); // 为httpPost设置封装好的请求参数 StringEntity data new StringEntity(body, Charset.forName("UTF8")); httpPost.setEntity(data); // httpClient对象执行post请求,并返回响应参数对象 httpResponse httpClient.execute(httpPost); // 从响应对象中获取响应内容 HttpEntity entity httpResponse.getEntity(); result.setBody(EntityUtils.toString(entity, "UTF8")); result.setStatusCode(httpResponse.getStatusLine().getStatusCode()); Map headerMap new HashMap (); for (Header header : httpResponse.getAllHeaders()) { headerMap.put(header.getName(), header.getValue()); } result.setHeaders(headerMap); } catch (Exception e) { e.printStackTrace(); } finally { // 关闭资源 if (null ! httpResponse) { try { httpResponse.close(); } catch (IOException e) { e.printStackTrace(); } } if (null ! httpClient) { try { httpClient.close(); } catch (IOException e) { e.printStackTrace(); } } } return result; } public Response doPut(int connectTimeout, int connectionRequestTimeout, int socketTimeout) { CloseableHttpClient httpClient null; CloseableHttpResponse httpResponse null; Response result new Response(); try { // 创建httpClient实例 if (temp 0) {//绕过SSL httpClient sslClient(); } else { httpClient HttpClients.createDefault(); } String query this.queryStr; this.afterQuery encodeQueryStr(query); // 创建HttpPut远程连接实例 HttpPut httpPut; if (StringUtils.isNotEmpty(this.afterQuery)) { httpPut new HttpPut(this.url + "?" + this.afterQuery); } else { httpPut new HttpPut(this.url); } // 配置请求参数实例 RequestConfig requestConfig RequestConfig.custom().setConnectTimeout(connectTimeout)// 设置连接主机服务超时时间 .setConnectionRequestTimeout(connectionRequestTimeout)// 设置连接请求超时时间 .setSocketTimeout(socketTimeout)// 设置读取数据连接超时时间 .build(); // 为httpPost实例设置配置 httpPut.setConfig(requestConfig); // 设置请求头 SimpleDateFormat TIMEFORMATTER new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'"); Date eopDate new Date(20321900,01,05); httpPut.setHeader("ContentType", this.contentType); httpPut.setHeader("ctyuneoprequestid", this.uuId); httpPut.setHeader("EopAuthorization", getSign(eopDate)); httpPut.setHeader("Eopdate", TIMEFORMATTER.format(eopDate)); if (this.headerMap ! null) { for (String key : this.headerMap.keySet()) { if (StringUtils.isNotEmpty(key)) { httpPut.setHeader(key, this.headerMap.get(key).toString()); } } } System.out.println("请求头部 "); for (Header header : httpPut.getAllHeaders()) { System.out.println(header.getName() + ":" + header.getValue()); } System.out.println(); // 为httpPost设置封装好的请求参数 StringEntity data new StringEntity(body, Charset.forName("UTF8")); httpPut.setEntity(data); // httpClient对象执行post请求,并返回响应参数对象 httpResponse httpClient.execute(httpPut); // 从响应对象中获取响应内容 HttpEntity entity httpResponse.getEntity(); result.setBody(EntityUtils.toString(entity, "UTF8")); result.setStatusCode(httpResponse.getStatusLine().getStatusCode()); Map headerMap new HashMap (); for (Header header : httpResponse.getAllHeaders()) { headerMap.put(header.getName(), header.getValue()); } result.setHeaders(headerMap); } catch (Exception e) { e.printStackTrace(); } finally { // 关闭资源 if (null ! httpResponse) { try { httpResponse.close(); } catch (IOException e) { e.printStackTrace(); } } if (null ! httpClient) { try { httpClient.close(); } catch (IOException e) { e.printStackTrace(); } } } return result; } public Response doPatch(int connectTimeout, int connectionRequestTimeout, int socketTimeout) { CloseableHttpClient httpClient null; CloseableHttpResponse httpResponse null; Response result new Response(); try { // 创建httpClient实例 if (temp 0) {//绕过SSL httpClient sslClient(); } else { httpClient HttpClients.createDefault(); } String query this.queryStr; this.afterQuery encodeQueryStr(query); // 创建HttpPatch远程连接实例 HttpPatch httpPatch; if (StringUtils.isNotEmpty(this.afterQuery)) { httpPatch new HttpPatch(this.url + "?" + this.afterQuery); } else { httpPatch new HttpPatch(this.url); } // 配置请求参数实例 RequestConfig requestConfig RequestConfig.custom().setConnectTimeout(connectTimeout)// 设置连接主机服务超时时间 .setConnectionRequestTimeout(connectionRequestTimeout)// 设置连接请求超时时间 .setSocketTimeout(socketTimeout)// 设置读取数据连接超时时间 .build(); // 为httpPost实例设置配置 httpPatch.setConfig(requestConfig); // 设置请求头 SimpleDateFormat TIMEFORMATTER new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'"); Date eopDate new Date(); httpPatch.setHeader("ContentType", this.contentType); httpPatch.setHeader("ctyuneoprequestid", this.uuId); httpPatch.setHeader("EopAuthorization", getSign(eopDate)); httpPatch.setHeader("Eopdate", TIMEFORMATTER.format(eopDate)); if (this.headerMap ! null) { for (String key : this.headerMap.keySet()) { if (StringUtils.isNotEmpty(key)) { httpPatch.setHeader(key, this.headerMap.get(key).toString()); } } } System.out.println("请求头部 "); for (Header header : httpPatch.getAllHeaders()) { System.out.println(header.getName() + ":" + header.getValue()); } System.out.println(); // 为httpPost设置封装好的请求参数 StringEntity data new StringEntity(body, Charset.forName("UTF8")); httpPatch.setEntity(data); // httpClient对象执行post请求,并返回响应参数对象 httpResponse httpClient.execute(httpPatch); // 从响应对象中获取响应内容 HttpEntity entity httpResponse.getEntity(); result.setBody(EntityUtils.toString(entity, "UTF8")); result.setStatusCode(httpResponse.getStatusLine().getStatusCode()); Map headerMap new HashMap (); for (Header header : httpResponse.getAllHeaders()) { headerMap.put(header.getName(), header.getValue()); } result.setHeaders(headerMap); } catch (Exception e) { e.printStackTrace(); } finally { // 关闭资源 if (null ! httpResponse) { try { httpResponse.close(); } catch (IOException e) { e.printStackTrace(); } } if (null ! httpClient) { try { httpClient.close(); } catch (IOException e) { e.printStackTrace(); } } } return result; } public Response doDelete(int connectTimeout, int connectionRequestTimeout, int socketTimeout) { CloseableHttpClient httpClient null; CloseableHttpResponse response null; Response result new Response(); try { // 通过址默认配置创建一个httpClient实例 if (temp 0) {//绕过SSL httpClient sslClient(); } else { httpClient HttpClients.createDefault(); } String query this.queryStr; this.afterQuery encodeQueryStr(query); // 创建httpGet远程连接实例 HttpDelete httpDelete; if (StringUtils.isNotEmpty(this.afterQuery)) { httpDelete new HttpDelete(this.url + "?" + this.afterQuery); } else { httpDelete new HttpDelete(this.url); } // 设置请求头信息,鉴权 SimpleDateFormat TIMEFORMATTER new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'"); Date eopDate new Date(); httpDelete.setHeader("ContentType", this.contentType); httpDelete.setHeader("ctyuneoprequestid", this.uuId); httpDelete.setHeader("EopAuthorization", getSign(eopDate)); httpDelete.setHeader("Eopdate", TIMEFORMATTER.format(eopDate)); if (this.headerMap ! null) { for (String key : this.headerMap.keySet()) { if (StringUtils.isNotEmpty(key)) { httpDelete.setHeader(key, this.headerMap.get(key).toString()); } } } System.out.println("请求头部 "); for (Header header : httpDelete.getAllHeaders()) { System.out.println(header.getName() + ":" + header.getValue()); } System.out.println(); // 设置配置请求参数 RequestConfig requestConfig RequestConfig.custom().setConnectTimeout(connectTimeout)// 连接主机服务超时时间 .setConnectionRequestTimeout(connectionRequestTimeout)// 请求超时时间 .setSocketTimeout(socketTimeout)// 数据读取超时时间 .build(); // 为httpGet实例设置配置 httpDelete.setConfig(requestConfig); // 执行get请求得到返回对象 response httpClient.execute(httpDelete); // 通过返回对象获取返回数据 HttpEntity entity response.getEntity(); // 通过EntityUtils中的toString方法将结果转换为字符串 result.setBody(EntityUtils.toString(entity, "UTF8")); result.setStatusCode(response.getStatusLine().getStatusCode()); Map headerMap new HashMap (); for (Header header : response.getAllHeaders()) { headerMap.put(header.getName(), header.getValue()); } result.setHeaders(headerMap); } catch (Exception e) { e.printStackTrace(); } finally { // 关闭资源 if (null ! response) { try { response.close(); } catch (IOException e) { e.printStackTrace(); } } if (null ! httpClient) { try { httpClient.close(); } catch (IOException e) { e.printStackTrace(); } } } return result; } public Response sendJsonByDeleteReq(int connectTimeout, int connectionRequestTimeout, int socketTimeout) { CloseableHttpClient httpClient null; CloseableHttpResponse response null; Response result new Response(); try { // 通过址默认配置创建一个httpClient实例 if (temp 0) {//绕过SSL httpClient sslClient(); } else { httpClient HttpClients.createDefault(); } String query this.queryStr; this.afterQuery encodeQueryStr(query); // 创建httpGet远程连接实例 HttpDeleteWithBody delete; if (StringUtils.isNotEmpty(this.afterQuery)) { delete new HttpDeleteWithBody(this.url + "?" + this.afterQuery); } else { delete new HttpDeleteWithBody(this.url); } // 设置请求头信息,鉴权 SimpleDateFormat TIMEFORMATTER new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'"); Date eopDate new Date(); delete.setHeader("ContentType", this.contentType); delete.setHeader("ctyuneoprequestid", this.uuId); delete.setHeader("EopAuthorization", getSign(eopDate)); delete.setHeader("Eopdate", TIMEFORMATTER.format(eopDate)); if (this.headerMap ! null) { for (String key : this.headerMap.keySet()) { if (StringUtils.isNotEmpty(key)) { delete.setHeader(key, this.headerMap.get(key).toString()); } } } System.out.println("请求头部 "); for (Header header : delete.getAllHeaders()) { System.out.println(header.getName() + ":" + header.getValue()); } System.out.println(); HttpEntity httpEntity new StringEntity(body, Charset.forName("UTF8")); delete.setEntity(httpEntity); // 设置配置请求参数 RequestConfig requestConfig RequestConfig.custom().setConnectTimeout(connectTimeout)// 连接主机服务超时时间 .setConnectionRequestTimeout(connectionRequestTimeout)// 请求超时时间 .setSocketTimeout(socketTimeout)// 数据读取超时时间 .build(); // 为httpGet实例设置配置 delete.setConfig(requestConfig); // 执行get请求得到返回对象 response httpClient.execute(delete); // 通过返回对象获取返回数据 HttpEntity entity response.getEntity(); // 通过EntityUtils中的toString方法将结果转换为字符串 result.setBody(EntityUtils.toString(entity, "UTF8")); result.setStatusCode(response.getStatusLine().getStatusCode()); Map headerMap new HashMap (); for (Header header : response.getAllHeaders()) { headerMap.put(header.getName(), header.getValue()); } result.setHeaders(headerMap); } catch (Exception e) { e.printStackTrace(); } finally { // 关闭资源 if (null ! response) { try { response.close(); } catch (IOException e) { e.printStackTrace(); } } if (null ! httpClient) { try { httpClient.close(); } catch (IOException e) { e.printStackTrace(); } } } return result; } public Response doHead(int connectTimeout, int connectionRequestTimeout, int socketTimeout) { CloseableHttpClient httpClient null; CloseableHttpResponse response null; Response result new Response(); try { // 通过址默认配置创建一个httpClient实例 if (temp 0) {//绕过SSL httpClient sslClient(); } else { httpClient HttpClients.createDefault(); } String query this.queryStr; this.afterQuery encodeQueryStr(query); // 创建httpHead远程连接实例 HttpHead httpHead; if (StringUtils.isNotEmpty(this.afterQuery)) { httpHead new HttpHead(this.url + "?" + this.afterQuery); } else { httpHead new HttpHead(this.url); } // 设置请求头信息,鉴权 SimpleDateFormat TIMEFORMATTER new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'"); Date eopDate new Date(); httpHead.setHeader("ContentType", this.contentType); httpHead.setHeader("ctyuneoprequestid", this.uuId); httpHead.setHeader("EopAuthorization", getSign(eopDate)); httpHead.setHeader("Eopdate", TIMEFORMATTER.format(eopDate)); if (this.headerMap ! null) { for (String key : this.headerMap.keySet()) { if (StringUtils.isNotEmpty(key)) { httpHead.setHeader(key, this.headerMap.get(key).toString()); } } } System.out.println("请求头部 "); for (Header header : httpHead.getAllHeaders()) { System.out.println(header.getName() + ":" + header.getValue()); } System.out.println(); // 设置配置请求参数 RequestConfig requestConfig RequestConfig.custom().setConnectTimeout(connectTimeout)// 连接主机服务超时时间 .setConnectionRequestTimeout(connectionRequestTimeout)// 请求超时时间 .setSocketTimeout(socketTimeout)// 数据读取超时时间 .build(); // 为httpHead实例设置配置 httpHead.setConfig(requestConfig); // 执行head请求得到返回对象 response httpClient.execute(httpHead); // 通过返回对象获取返回数据 HttpEntity entity response.getEntity(); // 通过EntityUtils中的toString方法将结果转换为字符串 result.setBody(EntityUtils.toString(entity, "UTF8")); result.setStatusCode(response.getStatusLine().getStatusCode()); Map headerMap new HashMap (); for (Header header : response.getAllHeaders()) { headerMap.put(header.getName(), header.getValue()); } result.setHeaders(headerMap); } catch (Exception e) { e.printStackTrace(); } finally { // 关闭资源 if (null ! response) { try { response.close(); } catch (IOException e) { e.printStackTrace(); } } if (null ! httpClient) { try { httpClient.close(); } catch (IOException e) { e.printStackTrace(); } } } return result; } private String toHex(byte[] data) { StringBuilder sb new StringBuilder(data.length 2); byte[] var2 data; int var3 data.length; for (int var4 0; var4 2) { String encodeStr null; encodeStr URLEncoder.encode(s[1], "UTF8"); str s[0] + "" + encodeStr; afterQuery afterQuery + str; } else { String encodeStr ""; str s[0] + "" + encodeStr; afterQuery afterQuery + str; } } else { String[] s str.split(""); if (s.length > 2) { String encodeStr URLEncoder.encode(s[1], "UTF8"); str s[0] + "" + encodeStr; afterQuery afterQuery + "&" + str; } else { String encodeStr ""; str s[0] + "" + encodeStr; afterQuery afterQuery + "&" + str; } } } } } catch (Exception e) { e.printStackTrace(); } return afterQuery; } } 3. HexUtils.java java package com.ffcs.ebp.ebpsdk; public class HexUtils { private static final char[] HEXES { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' }; / byte数组 转换成 16进制小写字符串 / public static String bytes2Hex(byte[] bytes) { if (bytes null bytes.length 0) { return null; } StringBuilder hex new StringBuilder(); for (byte b : bytes) { hex.append(HEXES[(b >> 4) & 0x0F]); hex.append(HEXES[b & 0x0F]); } return hex.toString(); } / 16进制字符串 转换为对应的 byte数组 / public static byte[] hex2Bytes(String hex) { if (hex null hex.length() 0) { return null; } char[] hexChars hex.toCharArray(); byte[] bytes new byte[hexChars.length / 2]; // 如果 hex 中的字符不是偶数个, 则忽略最后一个 for (int i 0; i headerMap new HashMap<>(); // headerMap.put("queryMetricDataInfo", "{"regionId":"cnsz1","dim":"instanceid,98cdcc8a8e544788ab9cc94ccee429c7","filter":"average","from":"1658473040","to":"1658473040","metricName":"netbitRecv","namespace":"AGT.ECS","period":"1"},"platform":"3"}"); // headerMap.put("platform", "3"); // headerMap.put("consoleUrl", " // headerMap.put("UserAgent", "3333433"); // headerMap.put("XForwardedFor", "1231313"); // headerMap.put("regionId", "100054c0416811e9a6690242ac110002"); // headerMap.put("prodInstId","9dcaf0157c604100af79bdb8271527bc"); //请求地址 String url " //query参数(?后面拼接的参数。没有就不填) aaaa&bbbb String queryStr "regionID41f64827xxxxxxxxxffa3a5deb5d15d"; //body参数(没有就不填) String body ""; //APPID String ak "9f82cacd3f8235c66edfs5e899f098e6"; //appkey String sk "MlgzESz430hJgTzA4lkjuJvDMMLTqwBQRicVqV62VM"; String uuId UUID.randomUUID().toString(); //连接超时 int connectTimeout 35000; //连接请求超时 int connectionRequestTimeout 35000; //socket超时 int socketTimeout 60000; YunSign yunSign new YunSign(url, ak, sk, uuId, body, temp, contentType, queryStr, headerMap); Response response yunSign.toDo(method, connectTimeout, connectionRequestTimeout, socketTimeout); System.out.println("应答头部 "); for (Map.Entry entry : response.getHeaders().entrySet()) { System.out.println(entry.getKey().toString() + ":" + entry.getValue().toString()); } System.out.println(); System.out.println("请求结果 "); System.out.println(response.getBody()); } }
        来自:
        帮助文档
        对象存储 ZOS
        API参考
        如何调用API
        Java调用示例
      • 事件通知(1)
        查看事件通知历史 1. 进入容器镜像服务控制台。 2. 点击已开通的企业版实例名称。 3. 左侧导航栏点击 "分发交付" "事件通知",点击"事件历史"标签页即可查看事件通知历史。 4. 事件通知历史列表页右上角可以对事件规则进行筛选。 5. 对于发送失败的事件通知记录,可以点击操作栏的重试按钮重新发送事件通知消息。
        来自:
      • 事件通知
        查看事件通知历史 1. 进入容器镜像服务控制台。 2. 点击已开通的企业版实例名称。 3. 左侧导航栏点击 "分发交付" "事件通知",点击"事件历史"标签页即可查看事件通知历史。 4. 事件通知历史列表页右上角可以对事件规则进行筛选。 5. 对于发送失败的事件通知记录,可以点击操作栏的重试按钮重新发送事件通知消息。
        来自:
        帮助文档
        容器镜像服务
        用户指南
        分发交付
        事件通知
      • 删除跨域带宽
        本节介绍删除跨域互联带宽的操作流程。 1.进入“AI云电脑(政企版)”管理控制台; 2.点击“网络管理”,点击“企业云网”,选择“跨域互联”,进入跨域互联管理页面; 3.在操作实例中,点击“跨域互联名称”; 4.进入跨域互联详情跨域带宽管理,点击“删除”。 注:如果已设置跨域互通带宽,需要先删除跨域互通带宽才能删除跨域带宽。
        来自:
        帮助文档
        天翼云电脑(政企版)
        管理员指南
        企业云网管理
        跨域互联
        删除跨域带宽
      • ALM-14022 NameNode RPC队列平均时间超过阈值
        参数名称 参数含义 来源 产生告警的集群名称。 服务名 产生告警的服务名称。 角色名 产生告警的角色名称。 主机名 产生告警的主机名。 NameService名 产生告警的NameService名称。 Trigger condition 系统当前指标取值满足自定义的告警设置条件。
        来自:
        帮助文档
        翼MapReduce
        用户指南
        FusionInsight Manager操作指导(适用于3.x)
        告警参考(适用于MRS 3.x版本)
        ALM-14022 NameNode RPC队列平均时间超过阈值
      • ALM-13007 ZooKeeper客户端可用连接数不足
        参数名称 参数含义 来源 产生告警的集群名称。 服务名 产生告警的服务名称。 角色名 产生告警的角色名称。 主机名 产生告警的主机名。 ClientIP 客户端IP。 ServerIP 服务端IP。 Trigger Condition 系统当前指标取值满足自定义的告警设置条件。
        来自:
        帮助文档
        翼MapReduce
        用户指南
        FusionInsight Manager操作指导(适用于3.x)
        告警参考(适用于MRS 3.x版本)
        ALM-13007 ZooKeeper客户端可用连接数不足
      • ALM-14009 Dead DataNode数量超过阈值
        参数名称 参数含义 来源 产生告警的集群名称。 服务名 产生告警的服务名称。 角色名 产生告警的角色名称。 主机名 产生告警的主机名。 NameService名 产生告警的NameService名称。 Trigger condition 系统当前指标取值满足自定义的告警设置条件。
        来自:
        帮助文档
        翼MapReduce
        用户指南
        FusionInsight Manager操作指导(适用于3.x)
        告警参考(适用于MRS 3.x版本)
        ALM-14009 Dead DataNode数量超过阈值
      • 续订
        本文介绍容器安全卫士续订规则及续订步骤。 续订说明 订单到期后,若没有续订,将不能继续使用订单中的服务,建议您提前进行续订。更多详情请阅读天翼云续订规则说明。 手动续订 1. 登录容器安全卫士控制台。 2. 在左侧导航栏选择“订单中心”,进入订单信息页面。 3. 单击“立即续订”,进入续订容器安全卫士页面。 4. 选择购买时长,支持1个月~5年。 5. 阅读《天翼云容器安全卫士服务协议》后,勾选“我已阅读理解并同意《天翼云容器安全卫士服务协议》”,单击“立即购买”。 6. 进入付款页面,完成付款。 自动续订 方法一:在购买容器安全卫士时,同步开启“自动续订”。详细操作请参见购买容器安全卫士。 方法二:若购买容器安全卫士时未开启“自动续订”,用户也可在购买后,通过天翼云“费用中心 > 订单管理 > 续订管理”页面,开通自动续订。详细操作请参见[开通自动续订](
        来自:
        帮助文档
        容器安全卫士
        计费说明
        续订
      • 服务协议
        自2021年11月11日起,新版天翼云安全专区服务协议生效。详情请参见这里。 天翼云安全专区服务协议 历史版本(20213)
        来自:
        帮助文档
        安全专区
        相关协议
        服务协议
      • 天翼云安全加速服务等级协议
        本文介绍天翼云安全加速服务等级协议(SLA)。 天翼云安全加速服务等级协议(SLA)详情请参见[](
        来自:
        帮助文档
        安全加速(文档停止维护)
        相关协议
        天翼云安全加速服务等级协议
      • 功能类
        download 图 Npcap not found 数据库安全审计支持双向审计吗? 数据库安全审计支持双向审计。双向审计是对数据库的请求和响应都进行审计。 数据库安全审计默认使用双向审计。 数据库安全审计支持TLS连接的应用吗? 不支持。TLS(Transport Layer Security)连接的应用是加密的,无法使用数据库安全审计功能。 数据库安全审计的审计数据可以保存多久? 数据库安全审计支持将在线和归档的审计数据至少保存180天的功能。 您可以在数据库安全审计的“总览”界面,通过选择数据库和审计周期,查看对应时间段的审计数据。 数据库实例通过数据库 IP+ 数据库端口计量。 如果同一数据库IP具有多个数据库端口,数据库实例数为数据库端口数。1个数据库IP只有1个数据库端口,即为一个数据库实例;1个数据库IP具有N个数据库端口,即为N个数据库实例。 例如:用户有2个数据库资产分别为IP1和IP2 ,IP1有一个数据库端口,则为1个数据库实例;IP2有3个数据库端口,则为3个数据库实例。IP1和IP2合计为4个数据库实例,选择服务版本规格时需要大于或等于4个数据库实例,即选用专业版(最多支持审计6个数据库实例)。 不支持修改规格。若要修改,请退订后重购。 本表中在线SQL语句的条数,是按照每条SQL语句的容量为1KB来计算的。 数据库安全审计发生异常,多长时间用户可以收到告警通知? 在数据库安全审计正常运行的情况下,从系统发生异常到收到告警通知最大时延不超过5分钟。 当您设置告警通知后,在数据库安全审计正常运行的情况下,当数据库安全审计实例资源(CPU、内存和磁盘)超过设置的告警阈值时,系统产生告警通知。用户约在5分钟内可以收到告警通知。
        来自:
        帮助文档
        数据库安全
        常见问题
        功能类
      • 更新镜像命名空间(1)
        参数 是否必填 参数类型 说明 示例 下级对象 instanceId 是 String 实例ID f04e47d9b48747958c9f4516cf1a8d82 namespaceName 是 String 命名空间名称 myns createRepoAuto 否 Boolean 是否允许直接通过推送镜像创建仓库 false defaultRepoPublic 否 Boolean 通过推送镜像创建的仓库的类型是否为公开。只有在设置createRepoAuto为true时该参数才生效 false accelerate 否 Boolean 是否开启镜像加速。用户需要开通云容器引擎集群后才能设置为true,并且仅对企业版实例生效 false
        来自:
      • iVPN app带宽管理
        本节介绍iVPN app的带宽管理。 1.进入“AI云电脑(政企版)”管理控制台; 2.点击“网络管理”,点击“企业云网”,选择“iVPN app”,进入iVPN app管理页面; 3.在操作实例中,点击“管理”,选择“调整带宽大小”,进入iVPN app 调整带宽大小管页面; 4.在调整带宽大小页面中,可拖动进度条或填写具体数字设置带宽。
        来自:
        帮助文档
        天翼云电脑(政企版)
        管理员指南
        企业云网管理
        iVPN app
        iVPN app带宽管理
      • IPSec VPN带宽管理
        本节介绍IPSec VPN带宽管理。 1.进入“AI云电脑(政企版)”管理控制台; 2.点击“网络管理”,点击“企业云网”,选择“IPsec VPN”,进入IPsec VPN管理页面; 3.在操作实例中点击“管理”,选择“调整带宽大小”,进入调整带宽大小管理页面; 4.进入调整带宽大小页面,可拖动进度条或填写具体数字设置带宽。
        来自:
        帮助文档
        天翼云电脑(政企版)
        管理员指南
        企业云网管理
        IPSec VPN
        IPSec VPN带宽管理
      • 降配客户支持计划
        本文介绍了客户支持计划的降配客户支持计划。 天翼云支持降低支持计划等级,如将企业级降配为商业级,并按订购周期实际未使用天数比例退还差价。但是客户不应频繁变更支持计划级别,天翼云保留拒绝客户频繁升降配支持计划的权力。 降配涉及支持费用变化:先计算剩余服务时间老支持计划结余费用,减去新支持计划所需费用,则为需要退还的费用。
        来自:
        帮助文档
        客户支持计划
        计费说明
        降配客户支持计划
      • 事件中心
        本章节介绍ECS应用实例事件中心功能 概述 ECS应用实例事件中心主要是包含微服务治理无损下线、离群实例摘除、离群实例恢复三种事件。 前提条件 1. 开通微服务治理中心企业版 2. 开启接入微服务治理和限流降级 ECS应用 实例事件中心 在ECS应用实例详情页,点击微服务治理事件,您可以查看该应用实例相关事件。
        来自:
        帮助文档
        微服务云应用平台
        用户指南
        部署运维
        ECS应用实例
        事件中心
      • 产品规格
        本节主要介绍产品规格 通用增强型实例是新推出的一系列性能高、计算能力稳定的实例规格,搭载英特尔®至强®可扩展处理器,配套高性能网络,综合性能及稳定性全面提升,满足对业务稳定性及计算性能要求较高的企业级应用诉求。 产品规格 规格类型 架构 CPU(核) 内存(GB) :::: 通用增强型 X86 8 16 通用增强型 X86 16 32 通用增强型 X86 32 64
        来自:
        帮助文档
        分布式关系型数据库
        产品简介
        产品规格
      • 跨账号实例同步
        自动跨账号实例同步 1. 登录容器镜像控制台。 2. 在顶部菜单栏,选择所需资源池。 3. 在实例页面中选择需要同步的实例。 4. 在企业版实例管理页面的左侧菜单上选择"分发管理" "实例同步",选择自动同步规则选项卡,点击左上角的创建规则。 5. 在“创建规则”对话框中,配置同步规则(同步场景选择"跨账号"),然后点击确定按钮,实现规则创建,各配置参数说明如下: 参数 说明 名称 自定义同步规则的名称 描述 自定义同步规则的补充描述信息,备注信息等 同步内容 同步的内容,可选择“镜像”或“Chart” 源实例 固定为当前实例 源命名空间 选择源实例中的命名空间,此项为必填 源仓库 选择源命名空间下的镜像仓库,可为空,为空时则包含命名空间下的所有镜像仓库 源版本 选择需要同步的镜像版本,可为空,为空时则同步所有版本的镜像 同步场景 同账号同步或跨账号同步 目标实例 选择目标实例所在的资源池并填写实例ID,此项必填 目标命名空间 选择要同步到的命名空间 覆盖 遇到同一镜像仓库下、同一版本的镜像时,是否进行覆盖,可选是或否 6. 当有新的容器镜像推送到符合上述规则的仓库中,会自动触发同步任务。 7. 在企业版实例管理页面的左侧菜单上选择 "分发管理" "实例同步",选择自动同步规则的选项卡,点击对应的同步规则,在规则详情页的下方查看任务执行情况。
        来自:
        帮助文档
        容器镜像服务
        用户指南
        实例导入与同步
        跨账号实例同步
      • 数据追踪
        数据追踪功能支持在数据误操作或数据修改不符合预期之后,可以追踪在指定时间段内的数据变更,并生成回滚和重建语句,帮助用户快速将数据恢复到变更前的状态,保障业务数据的完整性。 前提条件 数据追踪目前仅支持MySQL数据库,且MySQL为5.6及以上版本。 数据追踪为企业版功能,请切换到DMS企业版后使用该功能,切换步骤及实例注意事项详见 版本说明 。 数据追踪要求当前用户以及登录实例的账户,拥有追踪的目标数据库或目标表的查询权限。查询及修改用户对实例元数据的操作权限 。 数据库已开启Binlog,并且 Binlog 相关参数设置如下:binlogformat ROW、binlogrowimage FULL。 注意事项 数据追踪仅支持追踪DML语句变更的数据,包括更新、插入、删除,不支持DDL语句变更的数据。 数据追踪仅可追踪到目标实例的Binlog保留时长内的变更数据,若追踪时间超过了Binlog的保留时长,则获取不到该部分数据。 数据追踪通过解析实例Binlog来得到误操作的数据,任务执行时会占用部分实例性能,尽量避免在实例使用高峰期执行数据追踪任务。 每个工单最多保存100W行追踪结果,保留1日后过期删除,请及时查看。 单个组织下未过期工单的追踪结果总数最多保存200W行记录。 执行数据追踪前,请确保数据库的Binlog开启并且正确配置Binlog。
        来自:
        帮助文档
        数据管理服务
        用户指南
        智能运维
        数据追踪
      • Ingress概述
        Ingress特性对比 表 Ingress特性对比 特性 ELB Ingress Controller Nginx Ingress Controller ::: 运维 免运维 自行安装、升级、维护 性能 一个Ingress支持一个ELB实例 多个Ingress只支持一个ELB实例 性能 使用企业级LB,高性能高可用,升级、故障等场景不影响业务转发 性能依赖pod的资源配置 性能 支持配置动态加载 更新配置需reload,可能会造成业务中断 组件部署 Master节点,不占用工作节点 Worker节点,需要Nginx组件运行成本 路由重定向 不支持 支持 SSL配置 支持 支持 由于ELB Ingress和社区开源的Nginx Ingress在原理上存在本质区别,因此支持的Service类型不同。 ELB Ingress Controller部署在master节点,所有策略配置和转发行为均在ELB侧完成。非ELB直通Pod场景下,集群外部的ELB只能通过VPC的IP对接集群内部节点,因此ELB Ingress只支持NodePort类型的Service。ELB直通Pod场景下,ELB可直接将流量转发到集群内Pod,此时Ingress仅支持对接ClusterIP类型的Service。 Nginx Ingress Controller运行在集群中,作为服务通过NodePort对外暴露,流量经过Nginxingress转发到集群内其他业务,流量转发行为及转发对象均在集群内部,因此支持ClusterIP和NodePort类型的Service。ELB直通Pod场景下,Nginx Ingress仅支持ClusterIP类型的Service。 综上,ELB Ingress使用企业级LB进行流量转发,拥有高性能和高稳定性的优点,而Nginx Ingress Controller部署在集群节点上,牺牲了一定的集群资源但可配置性相对更好。
        来自:
        帮助文档
        云容器引擎
        用户指南
        网络管理
        Ingress
        Ingress概述
      • 续订私有(内网)证书
        本节介绍如何续订私有证书。 证书管理服务仅支持控制台续订,用户可在控制台实例界面选择续订,按照续订产品规格进行下单。 说明 仅签发成功的证书能够进行续订。 仅支持续订统一规格证书。 手动续订 1. 登录证书管理服务控制台。 2. 在左侧导航栏,选择“私有证书管理 > 私有证书列表”。 3. 在待续费证书的“操作”列单击“证书续订”。 4. 在跳转的页面中确认续订证书的信息,选择证书有效期。 5. 阅读并同意天翼云证书管理服务的服务协议和服务等级协议后,单击“立即购买”。 自动续订 1. 登录证书管理服务控制台。 2. 在左侧导航栏,选择“私有证书管理 > 私有证书列表”。 3. 选择需要开启自动续订功能的证书,将“开启自动续费”开关调整至状态,即可开始自动续费功能。 说明 自动续费生效后,会在您证书到期前30个自然日为您自动续费;若您在到期30个自然日前开启自动续费功能,则不会为您自动续费,请您注意。 新生成的订单和您旧证书的订单信息保持一致。例如:您购买3年期的企业型(OV)单域名证书,会在到期前30个自然日自动续费3年期的企业型(OV)单域名证书。 自动续费生成的证书会为您自动提交申请,但是需要您手动提交确认函和解析记录后才会签发,后续操作可参考:申请私有(内网)证书。
        来自:
        帮助文档
        证书管理服务
        用户指南
        私有(内网)证书
        续订私有(内网)证书
      • 产品续订
        本小节介绍证书管理服务产品续订。 证书管理服务仅支持控制台续订,用户可在控制台实例界面选择续订,按照续订产品规格进行下单。 说明 仅签发成功的证书能够进行续订。 仅支持续订统一规格证书。 手动续订操作步骤 1. 进入证书管理服务,选择“SSL证书管理”>“SSL证书列表”。 2. 在待续费证书的“操作”列单击“证书续订”。 3. 在跳转的页面中确认续订证书的信息,选择证书有效期。 4. 阅读并同意天翼云证书管理服务的服务协议和服务等级协议后,单击“立即购买”。 自动续订操作步骤 1.进入证书管理服务,选择“SSL证书管理”>“SSL证书列表”。 2.选择需要开启自动续订功能的证书,将“开启自动续费”开关调整至状态,即可开始自动续费功能。 说明 自动续费生效后,会在您证书到期前30个自然日为您自动续费;若您在到期30个自然日前开启自动续费功能,则不会为您自动续费,请您注意。 新生成的订单和您旧证书的订单信息保持一致。例如:您购买3年期的企业型(OV)单域名证书,会在到期前30个自然日自动续费3年期的企业型(OV)单域名证书。 自动续费生成的证书会为您自动提交申请,但是需要您手动提交确认函和解析记录后才会签发,后续操作可参考:申请SSL证书。
        来自:
        帮助文档
        证书管理服务
        计费说明
        产品续订
      • 产品规格
        本文为您介绍密钥管理服务KMS(Key Management Service)的服务模式及规格说明。 注意 自2024年9月13日起,KMS全新升级上线包周期版,升级后不再支持按需版本的开通,新用户需购买包周期版KMS(基础版、企业版),原已开通按需版KMS的用户仍可继续使用按需密钥,并依据按需版计费标准计费。 包周期服务 KMS服务提供两种版本,分别为基础版、企业版,您可以根据本章节列出的版本对比信息,选择合适的服务版本,同时,KMS包周期服务提供免费的默认密钥,支持用于云产品加密功能。具体配额数据请参见下方表格。 同一账号支持开通多套KMS服务,服务之间资源隔离。单套KMS服务规模取决于基础实例数量,您可根据业务需求选择开通数量,支持扩容,扩容后可提升服务整体性能及可用性。服务性能(单基础实例)请参见性能数据。 说明 当前仅华南2资源池支持开通多套KMS服务,其他资源池陆续上线,敬请关注。 √表示支持,×表示不支持。 对比项 子项 默认密钥 基础版 企业版 计费模式 免费 包周期 包周期 应用场景 云产品透明加密 √ √ √ 应用场景 用户自建应用加密 √ √ 应用场景 密评合规 × √ 应用场景 证书管理 √ √ 配额 默认计算性能(以对称加密为例) 1000QPS(所有云产品的默认密钥共享加密接口的性能) 单基础实例专享:2000QPS(通过应用接入点在VPC间调用) 共享网关:750QPS(通过openapi调用) 单基础实例专享:2000QPS(通过应用接入点在VPC间调用) 共享网关:750QPS(通过openapi调用) 配额 密钥数量 每个天翼云账号在每个资源池,可为每个云产品创建1个默认密钥 单基础实例:02000个 单基础实例:02000个 配额 证书数量 单基础实例:01000个 单基础实例:01000个 配额 应用接入点 单基础实例:3个 单基础实例:3个 接入网络类型 内部网络 openapi(公网) VPC间调用(私网) openapi(公网) VPC间调用(私网) 密钥管理 密钥规格 AES256 对称密钥:AES256 非对称密钥:RSA2048 对称密钥: AES256 SM4 非对称密钥: RSA2048 SM2 密钥管理 导入外部密钥材料(BYOK) × √ 对称密钥支持 √ 对称密钥支持 密钥管理 密钥自动轮转 × √ 对称密钥支持 √ 对称密钥支持 密钥管理 计划删除密钥 × √ √ 密钥管理 密钥删除保护 × √ √ 密钥管理 密钥别名管理 √(系统默认别名) √ √ 密钥管理 密钥标签管理 √ √ √ 密码运算 数据加解密 √(云产品) √ √ 密码运算 签名验签 × √ √ 密码运算 完整性校验 × √ √ 证书管理 创建证书 × √ √ 证书管理 导入证书 × √ √ 证书管理 吊销证书 × √ √ 证书管理 删除证书 × √ √
        来自:
      • 1
      • ...
      • 308
      • 309
      • 310
      • 311
      • 312
      • ...
      • 354
      跳转至
      推荐热词
      天翼云运维管理审计系统天翼云云服务平台云服务备份云日志服务应用运维管理云手机云电脑天翼云云hbase数据库电信云大数据saas服务电信云大数据paas服务轻量型云主机天翼云客户服务电话应用编排服务天翼云云安全解决方案云服务总线CSB天翼云服务器配置天翼云联邦学习产品天翼云云安全天翼云企业上云解决方案天翼云产品天翼云视频云存储

      天翼云最新活动

      安全隔离版OpenClaw

      OpenClaw云服务器专属“龙虾“套餐低至1.5折起

      青云志云端助力计划

      一站式科研助手,海外资源安全访问平台,助力青年翼展宏图,平步青云

      出海产品促销专区

      爆款云主机低至2折,高性价比,不限新老速来抢购!

      天翼云信创专区

      “一云多芯、一云多态”,国产化软件全面适配,国产操作系统及硬件芯片支持丰富

      中小企业服务商合作专区

      国家云助力中小企业腾飞,高额上云补贴重磅上线

      云上钜惠

      爆款云主机全场特惠,2核4G只要1.8折起!

      天翼云奖励推广计划

      加入成为云推官,推荐新用户注册下单得现金奖励

      产品推荐

      多活容灾服务 MDR

      镜像服务 IMS

      弹性伸缩服务 AS

      弹性高性能计算 E-HPC

      天翼云CTyunOS系统

      训推服务

      AI Store

      公共算力服务

      模型推理服务

      推荐文档

      系统必备组件安装

      新品上线

      普通连接

      • 7*24小时售后
      • 无忧退款
      • 免费备案
      • 专家服务
      售前咨询热线
      400-810-9889转1
      关注天翼云
      • 旗舰店
      • 天翼云APP
      • 天翼云微信公众号
      服务与支持
      • 备案中心
      • 售前咨询
      • 智能客服
      • 自助服务
      • 工单管理
      • 客户公告
      • 涉诈举报
      账户管理
      • 管理中心
      • 订单管理
      • 余额管理
      • 发票管理
      • 充值汇款
      • 续费管理
      快速入口
      • 天翼云旗舰店
      • 文档中心
      • 最新活动
      • 免费试用
      • 信任中心
      • 天翼云学堂
      云网生态
      • 甄选商城
      • 渠道合作
      • 云市场合作
      了解天翼云
      • 关于天翼云
      • 天翼云APP
      • 服务案例
      • 新闻资讯
      • 联系我们
      热门产品
      • 云电脑
      • 弹性云主机
      • 云电脑政企版
      • 天翼云手机
      • 云数据库
      • 对象存储
      • 云硬盘
      • Web应用防火墙
      • 服务器安全卫士
      • CDN加速
      热门推荐
      • 云服务备份
      • 边缘安全加速平台
      • 全站加速
      • 安全加速
      • 云服务器
      • 云主机
      • 智能边缘云
      • 应用编排服务
      • 微服务引擎
      • 共享流量包
      更多推荐
      • web应用防火墙
      • 密钥管理
      • 等保咨询
      • 安全专区
      • 应用运维管理
      • 云日志服务
      • 文档数据库服务
      • 云搜索服务
      • 数据湖探索
      • 数据仓库服务
      友情链接
      • 中国电信集团
      • 天翼云国际站
      • 189邮箱
      • 天翼企业云盘
      • 天翼云盘
      ©2026 天翼云科技有限公司版权所有 增值电信业务经营许可证A2.B1.B2-20090001
      公司地址:北京市东城区青龙胡同甲1号、3号2幢2层205-32室
      • 用户协议
      • 隐私政策
      • 个人信息保护
      • 法律声明
      备案 京公网安备11010802043424号 京ICP备 2021034386号