活动

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

息壤智算

领先开放的智算服务平台,提供算力、平台、数据、模型、应用“五位一体”智算服务体系,构建全流程的AI基础设施能力
AI Store
  • 算力市场
  • 模型市场
  • 应用市场
公共算力服务
  • 裸金属
  • 定制裸金属
训推服务
  • 模型开发
  • 训练任务
  • 服务部署
Token 服务
  • 模型广场
  • 体验中心
  • 服务接入
应用托管
  • 应用实例
科研助手
  • 科研智能体
  • 科研服务
  • 开发机
  • 并行计算
大模型
  • DeepSeek-V4-Flash
  • GLM-5.1
  • Qwen3.5-122B-A10B
  • DeepSeek-V3.2(旗舰版)
  • GLM-5(正式版)
  • Qwen3.5-397B-A17B(正式版)
智算一体机
  • 智算一体机
模型适配专家服务
  • 模型适配专家服务
算力服务商
  • 入驻算力服务商

应用商城

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

定价

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

合作伙伴

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

开发者

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

支持与服务

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

了解天翼云

天翼云秉承央企使命,致力于成为数字经济主力军,投身科技强国伟大事业,为用户提供安全、普惠云服务
品牌介绍
  • 关于天翼云
  • 智算云
  • 天翼云4.0
  • 新闻资讯
  • 天翼云APP
基础设施
  • 全球基础设施
  • 信任中心
最佳实践
  • 精选案例
  • 超级探访
  • 云杂志
  • 分析师和白皮书
  • 天翼云·创新直播间
市场活动
  • 2026智能云生态大会
  • 2025智能云生态大会
  • 2024智算云生态大会
  • 2023云生态大会
  • 2022云生态大会
  • 天翼云中国行
天翼云
  • 活动
  • 息壤智算
  • 产品
  • 解决方案
  • 应用商城
  • 定价
  • 合作伙伴
  • 开发者
  • 支持与服务
  • 了解天翼云
      • 文档
      • 控制中心
      • 备案
      • 管理中心
      电信云时间序列数据库tsdb_相关内容
      • 系统委托说明
        本文主要介绍 系统委托说明。 由于CCE在运行中对计算、存储、网络以及监控等各类云服务资源都存在依赖关系,因此当您首次登录CCE控制台时,CCE将自动请求获取当前区域下的云资源权限,从而更好地为您提供服务。服务权限包括: 计算类服务 CCE集群创建节点时会关联创建云主机,因此需要获取访问弹性云主机、物理机的权限。 存储类服务 CCE支持为集群下节点和容器挂载存储,因此需要获取访问云硬盘、弹性文件、对象存储等服务的权限。 网络类服务 CCE支持集群下容器发布为对外访问的服务,因此需要获取访问虚拟私有云、弹性负载均衡等服务的权限。 容器与监控类服务 CCE集群下容器支持镜像拉取、监控和日志分析等功能,需要获取访问容器镜像等服务的权限。 当您同意授权后,CCE将在IAM中自动创建账号委托,将帐号内的其他资源操作权限委托给CCE服务进行操作。 CCE自动创建的委托如下: cceadmintrust cceclusteragency cceadmintrust委托说明 cceadmintrust委托具有Tenant Administrator权限。Tenant Administrator拥有除IAM管理外的全部云服务管理员权限,用于对CCE所依赖的其他云服务资源进行调用,且该授权仅在当前区域生效。 如果您在多个区域中使用CCE服务,则需在每个区域中分别申请云资源权限。您可前往“IAM控制台 > 委托”页签,单击“cceadmintrust”查看各区域的授权记录。 说明 由于CCE对其他云服务有许多依赖,如果没有Tenant Administrator权限,可能会因为某个服务权限不足而影响CCE功能的正常使用。因此在使用CCE服务期间,请不要自行删除或者修改“cceadmintrust”委托。
        来自:
        帮助文档
        云容器引擎
        用户指南
        权限管理
        系统委托说明
      • ListParts(1)
        参数名称 参数描述 类型 LastModified 参数解释: 该分段的最新更新时间。 Date PartNumber 参数解释: 分段号。 Long Etag 参数解释: 该分段的Etag。 String Size 参数解释: 该分段大小,单位为bytes。 Long
        来自:
      • 云上ECS通过内网访问OBS
        前提条件 已创建OBS桶,确定所在区域和桶的访问域名,如苏州区域的桶:xxxbucket.obs.cnjssz1.ctyun.cn。查看方法 已购买同区域的云主机ECS。 ECS已配置内网DNS解析。 已下载并安装OBS Browser+工具。 在Windows ECS使用OBS Browser+内网访问OBS OBS Browser+是一款用于访问和管理对象存储服务的图形化工具,支持通过配置内网DNS服务器地址的方式,使在天翼云上的Windows ECS通过内网直接访问OBS,下面将介绍具体其操作流程和操作步骤。 说明 OBS Browser+需通过公网下载,或者从其他可以访问公网的云服务器下载后传到当前云服务器安装。 在Windows ECS上使用OBS Browser+通过内网访问OBS的流程。 登录windows ECS a.登录天翼云,在页面右上角单击 “控制台”,进入“管理控制台”页面。 b.在打开的控制台首页,选择“计算 > 弹性云主机”。 c.选择待登录的云主机,登录弹性云主机。 Windows弹性云主机提供“VNC远程登录方式”和“MSTSC方式”两种登录方式,具体操作请参见登录Windows弹性云主机。 查看Windows ECS是否已配置内网DNS 在Windows ECS上,您可以通过图形界面和命令行两种方式查看当前的DNS配置。此处以通过命令行方式为例,介绍如何查看DNS配置。 a.成功登录弹性云主机后,打开cmd命令行。 b.运行ipconfig /all命令,查看“DNS服务器”是否为当前ECS所在区域的内网DNS地址。 说明 天翼云针对各区域提供了不同的内网DNS服务器地址,具体请参见 否,执行配置内网DNS。 是,执行下载OBS Browser+。
        来自:
        帮助文档
        对象存储 OBS
        最佳实践
        云上ECS通过内网访问OBS
      • 如何处理管理控制台异常提示信息
        本文为您介绍如何处理管理控制台的异常提示信息 。 问题描述 您可以通过本节内容解决如下问题: 用户在管理控制台执行弹性云主机相关操作后出现异常,针对管理控制台提示的异常信息,应该如何处理? 用户根据弹性云主机《API参考》调用相关的API接口时,如果返回错误码,应该如何处理? 背景信息 用户通过管理控制台执行弹性云主机的相关操作后,弹性云主机列表页面将显示相应操作的申请状态。通过申请状态中显示的信息,用户可以获悉当前操作请求的执行状态。 如果操作请求正常执行完毕,则任务提示栏中的记录将自动消失。 如果操作请求在执行过程中出现异常,则任务提示栏将返回错误说明。 处理方法 针对管理控制台提示的异常信息,您可以通过表1中的处理建议进行下一步操作,处理相应的异常。 表1 常见错误信息处理建议 管理控制台提示信息 按量付费处理建议 包年/包月处理建议 当前账号余额不足100元或不支持按量付费功能,请确认后,重新购买。 在用户中心充值,确保现金金额不小于100元。 不涉及。 您的配额不足,无法创建或购买对应服务,请您申请更多配额。 按照如下操作申请配额:提交工单>新建工单>配额类>配额申请。 按照如下操作申请配额:提交工单>新建工单>配额类>配额申请。 云主机中间状态下不可执行该操作。 等待云主机上一个操作完成后重试。 等待云主机上一个操作完成后重试。 辅助私网IP地址必须在主私网IP地址段内。 选取主私网IP地址段内的IP作为辅助私网IP地址。 选取主私网IP地址段内的IP作为辅助私网IP地址。 内部错误,请联系客户经理协助处理。 联系客户经理或者提交工单。 联系客户经理或者提交工单。 如果在调用弹性云主机相关API接口时出错,可以根据调用的API接口文档里的错误码描述表查看错误的详细信息,并对参数进行相应的调整。
        来自:
        帮助文档
        弹性云主机 ECS
        常见问题
        使用故障类
        如何处理管理控制台异常提示信息
      • 使用Mac远程连接Windows云主机报错:证书或相关链无效
        本文主要介绍使用Mac远程连接Windows云主机报错:证书或相关链无效怎么处理。 问题描述 使用Mac版Microsoft Remote Desktop工具,远程连接Windows云主机。 图 Mac版Microsoft Remote Desktop工具 由于Mac系统的特殊性,在使用Mac系统远程登录Windows云主机时,需要在Mac端和Windows云主机内部执行相关配置,才能远程连接成功。使用Mac远程连接时,出现报错“证书或相关链无效”。 图 证书或相关链无效 可能原因 云主机策略组设置的问题。 操作步骤 1.在本地主机左上角的菜单栏选择“RDC > 首选项”打开Microsoft Remote Desktop的偏好设置。 图 选择首选项 2.选择“安全性”,并修改参数配置。 图 选择安全性 3.再次远程连接Windows云主机,如果仍出现报错“证书或相关链无效”,请执行4。 4.使用控制台提供的远程连接功能(VNC方式)登录Windows云主机。 5.按快捷键“Win+R”打开“运行”窗口。 6.输入“gpedit.msc”,进入“本地组策略编辑器”。 7.在左侧导航栏,选择“计算机配置 > 管理模板 > Windows组件 > 远程桌面服务 > 远程桌面会话主机 > 安全”。 图 远程桌面会话主机 8.根据界面提示,修改如下两项配置: −启用“远程(RDP)连接要求使用指定的安全层”。 图 远程(RDP)连接要求使用指定的安全层 −禁用“要求使用网络级别的身份验证对远程连接的用户进行身份验证”。 图 远程连接身份认证 9.关闭组策略编辑器,然后重启云主机。
        来自:
        帮助文档
        弹性云主机 ECS
        常见问题
        登录与连接
        Windows远程登录报错类
        使用Mac远程连接Windows云主机报错:证书或相关链无效
      • 云原生网关触发器
        云原生网关触发器能够让您网关的流量导去函数计算后端,能够支持更丰富的请求配置,如请求方法、请求头、请求参数等 前提条件 已创建函数。 已创建云原生网关。 已创建函数计算服务的终端节点(VPCE)。 创建步骤请查看创建VPCE,其中”虚拟私有云“选择云原生网关所属的VPC,”服务“选择函数计算服务cn.ctyun.cnhuadong1.faas 注意 函数计算服务在各资源池的名称(cn.ctyun.cnhuadong1.faas )可能有差别,选择后缀为faas的即可,上述示例是在华东一资源池的名称 操作步骤 1. 登录函数计算控制台,点击目标函数,进入函数详情。 2. 选择详情下顶部的配置选项卡。 3. 在配置选项卡中,选择左边的触发器选项卡。 4. 点击创建触发器 ,在弹出的右抽屉中选择云原生网关触发器,配置参数解释如下 配置项 操作 示例 触发器类型 选择云原生触发器。 云原生触发器 名称 填写自定义的触发器名称。 cgwtrigger 版本或别名 默认值为LATEST,支持选择任意函数版本或函数别名。 LATEST 网关实例 选择已创建的云原生网关实例。 域名 选择网关实例已关联的域名。 mydomain.com 匹配路径 匹配请求的path(不含query参数),当前支持前缀匹配和精确匹配。末尾使用''代表使用前缀匹配。 /my/path 请求方法 匹配请求中的HTTP方法,可多选,不选则匹配所有HTTP方法 优先级 当多个路由同时匹配一个请求时,路径匹配深度较大的路由优先;路径匹配相同的情况下,路由优先级高(数字大)的优先匹配。 0 请求头 匹配请求中的HTTP header。 请求参数 匹配请求中的HTTP query参数。 触发器启用状态 创建触发器后是否立即启用。默认选择开启,即创建触发器后立即启用触发器。 启用
        来自:
        帮助文档
        函数计算
        用户指南
        事件触发
        云原生网关触发器
      • 操作步骤
        本文向您介绍通过企业版VPN实现云上云下网络互通(主备模式)的操作步骤。 前提条件 云侧 请确认虚拟私有云VPC已经创建完成。 请确认虚拟私有云VPC的安全组规则已经配置,ECS通信正常。 如果通过企业路由器ER关联VPN网关,请确认企业路由器ER已经创建完成。 数据中心侧 用户数据中心的VPN设备已经完成IPsec连接相关配置。 操作步骤 VPN服务支持静态路由模式、BGP路由模式和策略模式三种连接模式。本示例以静态路由模式进行配置讲解。 1. 登录管理控制台,单击“网络 > VPN”进入VPN控制台。 2. 配置VPN网关: 1. 选择“虚拟专用网络 > 企业版VPN网关”,单击“创建VPN网关”。 2. 根据界面提示配置参数。 表VPN网关参数说明 参数 说明 取值参数 名称 VPN网关的名称。 vpngw001 网络类型 选择“公网”。 公网 关联模式 选择“虚拟私有云”。 关联ER场景时,请选择“企业路由器”。 虚拟私有云 企业路由器 仅关联场景为“企业路由器”时需要选择。 er001 虚拟私有云 选择用于分配互联子网的VPC。 关联场景为“企业路由器”时,该VPC可以对接ER,也可以不对接ER。 vpc001(192.168.0.0/16) 互联子网 用于VPN网关和VPC通信,请确保选择的互联子网存在4个及以上可分配的IP地址。 192.168.2.0/24 本端子网 仅关联场景为“虚拟私有云”时需要配置。 输入网段 输入需要和用户数据中心通信的子网,该子网可以在关联VPC内,也可以不在关联VPC内。 选择子网 选择关联VPC内的子网信息,用于和用户数据中心通信。 192.168.0.0/24,192.168.1.0/24 BGP ASN BGP自治系统编号。 64512 HA模式 选择“主备”。 主备 主EIP VPN网关和用户数据中心通信的公网IP1。 1.1.1.2 备EIP VPN网关和用户数据中心通信的公网IP2。 2.2.2.2 3. 配置对端网关: 1. 选择“虚拟专用网络 > 企业版对端网关”,单击“创建对端网关”。 2. 根据界面提示配置参数。
        来自:
        帮助文档
        VPN连接
        最佳实践
        通过企业版VPN实现云上云下网络互通(主备模式)
        操作步骤
      • 产品定义
        本章节主要介绍云搜索服务(ES)的产品定义。 云搜索服务(简称ES)是一个基于Elasticsearch、OpenSearch且完全托管的在线分布式搜索服务,为用户提供结构化、非结构化文本、以及基于AI向量的多条件检索、统计、报表。云搜索服务是ELK生态的一系列软件集合,为您全方位提供托管的ELK生态云服务,兼容Elasticsearch、Logstash、Kibana、Cerebro等软件。 Elasticsearch和OpenSearch Elasticsearch、OpenSearch是开源搜索引擎,可以实现单机和集群部署,并提供托管的分布式搜索引擎服务。在ELK整个生态中,Elasticsearch集群支持结构化、非结构化文本的多条件检索、统计、报表。 云搜索服务支持自动部署,快速创建Elasticsearch集群和OpenSearch集群,免运维,内置搜索调优实践;拥有完善的监控体系,提供一系列系统、集群以及查询性能等关键指标,让用户更专注于业务逻辑的实现。 Logstash Logstash是一个开源数据收集引擎,具有实时管道功能。在ELK整个生态中,Logstash承担着数据接入的重要功能,可以动态地将来自不同数据源的数据统一起来,进行标准化的转换,然后将数据发送到指定的位置。 云搜索服务支持快速创建Logstash集群,Logstash是一款全托管的数据接入处理服务,100%兼容开源Logstash的能力。在生产系统中,数据往往以各种各样的形式,或分散或集中地存在于很多系统中。Logstash的出现,能够很轻松的帮助您处理各种来源的数据并转储到Elasticsearch云服务中,从而更加方便的发现其中的价值。同时您也可以单独使用Logstash云服务处理数据发送到其他的系统中。
        来自:
        帮助文档
        云搜索服务
        产品简介
        产品定义
      • 弹性IP绑定/解绑类
        本文主要介绍弹性IP绑定/解绑类问题。 如何通过外部网络访问绑定弹性IP的弹性云主机? 为保证弹性云主机的安全性,每个弹性云主机创建成功后都会加入到一个安全组中,安全组默认Internet对内访问是禁止的,所以需要在安全组中添加对应的入方向规则,才能从外部访问该弹性云主机。 在安全组规则设置界面用户可根据实际情况选择TCP、UDP、ICMP或All类型。 当弹性云主机需要提供由公网可以访问到的服务且知道对端IP地址或无需提供由公网可以访问到的服务时,建议根据业务需要,将源地址设置为允许已知IP地址所在的网段访问该安全组。 当弹性云主机需要提供由公网可以访问到的服务且不知道对端的IP地址时,建议使用默认的源地址0.0.0.0/0,再通过配置端口提高网络安全性。 建议将不同公网访问策略的弹性云主机划分到不同的安全组。 说明:源地址默认的IP地址0.0.0.0/0是指允许所有IP地址访问安全组内的弹性云主机。 如何通过扩展网卡绑定的弹性IP访问公网? 弹性IP绑定扩展网卡后,进入弹性云主机,执行route命令查询路由: route命令如果不清楚可以使用 route help 。 图查看路由信息 执行ifconfig命令查看网卡信息。 图查看网卡信息 配置默认通过扩展网卡访问公网。 a. 执行如下命令删除主网卡默认route。 route del net 0.0.0.0 gw 192.168.0.1 dev eth0 说明:此操作会导致虚拟机流量中断,请谨慎操作,推荐您参考步骤4配置。 b. 执行如下命令配置扩展网卡默认route。 route add default gw 192.168.17.1 按照访问的目标地址配置扩展网卡访问。 配置通过扩展网卡访问某一网段(xx.xx.0.0/16,该网段请按实际情况设置): route add net xx.xx.0.0 netmask 255.255.0.0 gw 192.168.17.1
        来自:
        帮助文档
        弹性IP EIP
        常见问题
        弹性IP绑定/解绑类
      • 管理DNAT规则
        添加DNAT规则 公网NAT网关创建后,通过添加DNAT规则,则可以通过映射方式将您VPC内的云主机对互联网提供服务。 注意 云主机/物理机使用公网NAT网关配置DNAT规则时,不建议云主机/物理机同时绑定公网IP,以免造成流量出入方向走到不同的路径。 一个云主机的一个端口对应一条DNAT规则,一个端口只能映射到一个EIP。如果您有多个云主机或一个主机的多个端口需要为互联网提供服务,则需要创建多条DNAT规则。 1. 登录天翼云控制中心,选择目标区域节点。选择“网络>NAT网关>公网NAT网关”,进入公网NAT网关页面。 2. 点击需要添加规则的公网NAT网关名称,进入公网NAT网关详情页,点击DNAT标签页,在标签页中点击添加DNAT规则。 3. 根据弹出界面提示,配置DNAT规则的基本信息,配置参数如表所示: 参数 参数说明 弹性IP 用于外部公网用户进行服务访问的目的IP。 类型 选择VPC内主机或网卡:选择现有子网内云主机,选择云主机的网卡,使外部用户能够通过DNAT方式访问云主机中的应用。手动输入自定义地址:填写某个主机地址(部分资源池支持)。 云主机(仅在选择VPC内主机或网卡时) 选择DNAT规则对应的内部云主机。 网卡(仅在选择VPC内主机或网卡时) 选择DNAT规则对应的内网IP。 内网地址(仅在选择手动输入自定义地址时) 自定义主机地址(部分资源池支持)。 端口设置 具体端口:支持设置单个端口和端口段,设置端口段时公网端口段和内网端口段的数量必须一致;任意端口:任意端口属于IP映射,任何访问该弹性公网IP的请求都将转发到目标主机实例上,目标主机实例也可以使用该弹性公网IP主动访问公网。 公网端口 外部公网用户访问服务的端口,端口范围1~65535。部分资源池端口范围在1到1024之间,具体以控制台为准。 内网端口 应用在内部提供服务使用的端口,端口范围1~65535。 支持协议 TCP、UDP协议。 描述 DNAT规则信息描述。 4. 设置好对应参数后,点击“确定”,等待DNAT规则变为运行中,即完成DNAT规则的创建。
        来自:
        帮助文档
        NAT网关
        操作指南
        公网NAT网关
        管理DNAT规则
      • 产品规格与价格
        本节为您介绍虚拟私有云VPC的相关费用。 虚拟私有云VPC服务下包含了多种产品资源,部分资源可以免费使用,部分资源需要支付费用。 下表为您详细介绍了虚拟私有云VPC各项资源的收费情况。 资源名称 收费情况说明 虚拟私有云 免费 子网 免费 路由表 免费 对等连接 免费 弹性网卡 免费 辅助弹性网卡 免费 IP地址组 免费 安全组 免费 网络ACL 免费 VPC流日志 如果您使用了VPC流日志,则VPC流日志使用的云日志服务需要支付费用。 流量镜像 免费 弹性公网IP和带宽 如果您使用了弹性公网IP和带宽的相关资源,则需要支付费用。 弹性公网IP:收取弹性公网IP保有费。 您购买的按需计费弹性公网IP未绑定至任何实例(如ECS、ELB)时,会收取弹性公网IP保有费。 固定带宽:弹性公网IP以及共享带宽的带宽费用。 带宽流量:按需计费(按流量计费)弹性公网IP的流量费用。 VPC终端节点 公测阶段暂不收费。
        来自:
        帮助文档
        虚拟私有云 VPC
        计费说明
        产品规格与价格
      • 安装一键式重置密码插件
        前提条件 云主机的状态为“运行中”。 需保证C盘可写入,且剩余空间大于300MB。 云主机使用的VPC网络DHCP不能禁用。 云主机网络正常通行。 云主机安全组出方向规则满足如下要求: − 协议:TCP − 端口范围:80 − 远端地址:169.254.0.0/16 如果您使用的是默认安全组出方向规则,则已经包括了如上要求,可以正常初始化。默认安全组出方向规则为: − 协议:ALL − 端口范围:ALL − 远端地址:0.0.0.0/16 操作步骤 1. 检查云主机是否已安装密码重置插件CloudResetPwdAgent和CloudResetPwdUpdateAgent。检查方法如下: 查看任务管理器,如果找到cloudResetPwdAgent服务和cloudResetPwdUpdateAgent服务,如下图所示,表示云主机已安装密码重置插件。 判断是否已安装插件 − 是,结束。 − 否,执行2。 2. 下载一键式重置密码插件。请参考获取一键式重置密码插件,下载对应的一键式重置密码插件CloudResetPwdAgent.zip并完成完整性校验。 安装一键式重置密码插件对插件的具体放置目录无特殊要求,请您自定义。 说明: 云主机需要绑定弹性公网IP才能自动更新一键式重置密码插件。 3. 安装一键式重置密码插件。 a. 依次双击“CloudResetPwdAgent.Windows”和“CloudResetPwdUpdateAgent.Windows”文件夹下的“setup.bat”,安装密码重置插件。 b. 查看任务管理器,检查密码重置插件是否安装成功。 如果在任务管理器中查找到了cloudResetPwdAgent服务和cloudResetPwdUpdateAgent服务,表示安装成功,否则安装失败。 说明: 如果密码重置插件安装失败,请检查安装环境是否符合要求,并重试安装操作。
        来自:
        帮助文档
        镜像服务 IMS
        用户指南
        Windows操作系统相关操作
        安装一键式重置密码插件
      • 产品定义
        中转IP 中转IP地址是私网NAT在SNAT功能或DNAT功能中用于源或目的地址转换的私网IP地址。中转IP从私网NAT中转地址段中分配,私网NAT创建时从中转地址段中默认分配一个中转IP地址。 中转地址段 中转IP地址段是私网NAT进行私网NAT地址管理的地址集合。私网NAT网关创建时会默认把创建时选择的子网网段作为中转地址段。 DNAT(目的地址转换) 定义:通过IP映射或端口映射,将IP报文中的目的地址进行转换。 用户可以通过配置NAT网关DNAT规则实现VPC内多个云主机资源共享弹性IP对外提供服务。 SNAT(源地址转换) 定义:将IP报文的源地址、源端口进行转换。 用户可以通过配置NAT网关SNAT规则,将云主机的私网IP转换成弹性公网IP,使VPC内没有公网IP的云主机可以直接访问公网,实现VPC内多个云主机资源共享弹性IP主动访问Internet。 产品架构 NAT网关分为SNAT和DNAT两个功能。 公网NAT网关 公网NAT网关分为SNAT和DNAT两个功能。 SNAT功能通过绑定弹性公网IP,实现私有IP向公有IP的转换,可实现VPC内跨可用区的多个云主机共享弹性公网IP安全、高效的访问互联网。 DNAT将外网 IP、端口映射到VPC内的云主机内网IP、端口,使得云主机上的服务可被外网访问。
        来自:
        帮助文档
        NAT网关
        产品简介
        产品定义
      • 查看进程监控
        指标名称 指标含义 取值范围 采集方式(Linux) 采集方式(Windows) 运行中进程数 该指标用于统计测量对象处于运行状态的进程数。 ≥ 0 测量对象:云主机或物理机 通过统计 /proc/pid/status 中Status值获取每个进程的状态,进而统计各个状态进程总数。 不支持 空闲进程数 该指标用于统计测量对象处于空闲状态的进程数。 ≥ 0 测量对象:云主机或物理机 通过统计 /proc/pid/status 中Status值获取每个进程的状态,进而统计各个状态进程总数。 不支持 僵死进程数 该指标用于统计测量对象处于僵死状态的进程数。 ≥ 0 测量对象:云主机或物理机 通过统计 /proc/pid/status 中Status值获取每个进程的状态,进而统计各个状态进程总数。 不支持 阻塞进程数 该指标用于统计测量对象被阻塞的进程数。 ≥ 0 测量对象:云主机或物理机 通过统计 /proc/pid/status 中Status值获取每个进程的状态,进而统计各个状态进程总数。 不支持 睡眠进程数 该指标用于统计测量对象处于睡眠状态的进程数。 ≥ 0 测量对象:云主机或物理机 通过统计 /proc/pid/status 中Status值获取每个进程的状态,进而统计各个状态进程总数。 不支持 系统进程数 该指标用于统计测量对象的总进程数。 ≥ 0 测量对象:云主机或物理机 通过统计 /proc/pid/status 中Status值获取每个进程的状态,进而统计各个状态进程总数。 测量对象:云主机或物理机 通过psapi.dll系统进程状态支持模块得到进程总数。
        来自:
        帮助文档
        云监控服务
        用户指南
        主机监控
        进程监控
        查看进程监控
      • 集群管理
        删除集群 翼MR服务支持用户在不需要大数据集群时执行删除集群操作,集群删除后,所有大数据使用的相关云资源都会同时被释放。删除集群前,建议完成数据搬迁或者备份,确认集群无任何业务运行或者集群异常且经运维分析无法继续提供服务时再执行集群删除操作。对于数据存放在云硬盘EVS或直通盘的大数据集群,集群删除后,数据也随之删除,强烈建议您慎重选择删除集群。 集群扩缩容 大数据集群的处理能力通常可以通过增加集群的节点数来横向扩展,当集群规模不符合业务要求时,用户可以通过该功能进行集群节点规模的调整,进行扩容或者缩容;在缩容节点时,翼MR会智能地选择负载最少或者迁移数据量最小节点,并且在缩容过程中,缩容节点不再接收新的任务,正在执行的任务继续执行,同时将该节点数据拷贝至其他节点,该节点进入退服状态,当该节点任务长时间运行无法结束时,会迁移至其他节点运行,最大限度地减少对集群业务的影响。 扩容集群 目前支持扩容集群Core节点或Task节点,用户可通过增加节点数量处理业务峰值负载。MRS集群节点扩容中和扩容后对现有集群的业务没有影响,扩容后引起的数据倾斜问题可参考页面内容进行规避。 包周期集群扩容 当用户创建了翼MR包周期集群后,在订购的周期之内,用户的业务增长超过预期时,就会出现超出包周期订单规模外的扩容诉求。翼MR服务支持包周期集群扩容能力,做到了在轻松帮助您完成扩容的前提下,让您继续享受着包周期的优惠。 您只需要在您业务需要的时候,打开翼MR服务页面,点两下鼠标,便可扩容出您需要的节点数。整个扩容过程无需后台人工介入,只需几分钟,即可完美解决您遇到的日益上涨的业务数据压力。
        来自:
        帮助文档
        翼MapReduce
        产品简介
        功能特性
        集群管理
      • 计费类
        本文汇总了使用并行文件服务HPFS产品时常见的计费类问题。 支持何种付费模式? 并行文件服务HPFS仅支持按需计费的模式,按照购买时配置容量结算费用,先使用,后付费,适用于业务用量经常有变化的场景。 按量付费是一种先使用、后付费的计费模式,您可在费用中心查询出账明细。 以按需计费创建并行文件系统后就开始计费吗? 是的,按需计费购买并行文件系统后,即按购买容量大小开始计费。 您可以参考按量付费的计费公式来预估您的费用:费用 每GB单价 文件系统大小 使用时长,以小时为单位统计。 如何查看账户是否欠费? 欠费可能导致您账户的多种服务无法正常进行,您可在【管理中心】查看账户余额、欠费金额等信息。 HPFS欠费说明,请参见HPFS 欠费说明。 关联的云服务弹性云主机实例怎么计费? 当创建文件系统后,您可以使用云主机来挂载该文件系统,以实现多个云主机共享使用文件系统的目的。 弹性云主机的计费请参见弹性云主机的计费项和计费说明。 关联的云服务VPC怎么计费? 当创建文件系统前,您需要在准备使用并行文件系统的地域,提前创建虚拟私有云VPC。 您的VPC实例是免费提供的,请参见虚拟私有云VPC的计费说明。
        来自:
        帮助文档
        并行文件服务 HPFS
        常见问题
        计费类
      • 功能特性
        本文带您了解云间高速(标准版)的功能特性。 云间高速(标准版)(CECStd, Express Connect Standard)为您提供一种能够快速构建同域、跨域VPC之间的高速、优质、稳定的网络能力,帮助您打造一张具有企业级规模和通信能力的云上网络。云间高速(标准版)具备大规模灵活组网、网络资源互通、路由自主学习和分发,跨区域互通带宽配置及与SDWAN混合组网等功能特性。 大规模灵活组网 每个地域可以创建云企业路由器,集中连接网络实例,组网可控、可管、易扩展。 简化拓扑 网路实例(VPC、云专线、跨账号VPC、VPN、云桌面网络)均集中连接到云企业路由器,简化点到点连接的管理成本,提高组网扩展性。 灵活可控 灵活定义互通、隔离、引流策略,提高网络安全性。 网络资源互通 任意网络实例间互通,提供高速、可靠、稳定的网络质量。 支持多网络实例互通 网络实例包括VPC、云专线、跨账号VPC、VPN和云桌面网络。 将同一账号下同域或跨域VPC加载到云间高速(标准版),可以实现VPC之间的互通。 将云专线加载到云间高速(标准版),可以实现云下IDC与云上多VPC互通,构建混合云。 涉及跨账号的同域或跨域VPC互联,首先需要跨账号授权网络实例,授权完成后,将跨账号网络实例加载到云间高速(标准版),即可实现跨账号同域或跨域VPC互通。 低时延 任意两点网络实例之间以最短路径私网互通,高速率,低时延。
        来自:
        帮助文档
        云间高速(标准版)EC
        产品简介
        功能特性
      • 产品特性
        本文介绍镜像服务的功能特性。 创建弹性云主机 用户根据业务需求可选择合适的公共镜像、私有镜像、安全镜像、共享镜像或应用镜像,并通过该镜像创建弹性云主机。 公共镜像、安全产品镜像、应用镜像由天翼云管理,用户只能查看镜像,不能修改和删除。 私有镜像仅用户可见,可进行编辑、共享、删除。 共享镜像仅共享者和被共享者可见,共享者可进行共享、取消共享,被共享者可接受或者拒绝由其他用户共享的私有镜像。 创建私有镜像 用户自定义的私有镜像来源有3种: 通过WEB控制台创建:用户登录弹性云主机控制台,选择需创建私有镜像的弹性云主机,填入相关信息后即可创建私有镜像,私有镜像只在选定弹性云主机所在区域可见。 自主上传:私有镜像的自主上传功能基于对象存储,对于有对象存储的资源池,用户可将自行制作的私有镜像上传至此资源池。 线下上传:如果当前资源池不支持镜像导入的功能,用户想将线下环境制作的镜像导入天翼云资源池,可联系天翼云客服人员,用户提供镜像的链接和天翼云账号(需要客户明确授权),运维人员会将镜像上传到指定区域,上传完毕后,用户即可在天翼云控制台查看并管理该私有镜像。 私有镜像管理 私有镜像只有用户自己可见,用户通过天翼云控制台管理私有镜像,进行查询、修改、删除操作,并可通过私有镜像创建弹性云主机。
        来自:
        帮助文档
        镜像服务 IMS
        产品简介
        产品特性
      • 创建标签键
        本文向您介绍如何创建统一的标签键。 当需要为搜索结果列表中所有资源统一添加拥有同样标签“键”的标签时,您可以使用创建标签键功能。 创建完成后,此标签键将显示在标签展示列中,该“键”列下的所有“值”的默认状态为“无标签”,即默认不会有具体的标签与云资源关联。您可以根据需求在列表中为云资源添加具体的标签“值”,标签即可生效。 操作步骤 1. 登录管理控制台,选择“管理与部署 > 标签管理服务”,进入标签管理服务界面。 2. 选择“资源配置标签”页签。 3. 设置资源搜索条件。 搜索云资源具体操作步骤可参见搜索云资源。 4. 单击“搜索”。 5. 单击搜索结果列表上方的“创建标签键”,进入添加标签键页面。 6. 设置标签的“键”。 键的长度最大36字符,由英文字母、数字、下划线、中划线、中文字符、“@”组成。 7. 单击“确定”。 标签键创建完成,此标签键将显示在标签展示列中。 标签键创建完成后如果没有与任何云资源关联,在刷新页面后,所创建的标签键将失效,不在资源搜索列表显示。 相关操作 在已有标签键的情况下为资源添加标签的步骤如下: 1. 单击搜索结果区域的“编辑”。 切换云资源标签列表为可编辑状态。 2. 单击待添加标签的云资源所在行的“+”号。 3. 输入标签“值”。 4. 单击。 资源标签修改完成,后续可按照新的标签管理该云资源。
        来自:
        帮助文档
        标签管理(二类节点)
        用户指南
        资源标签
        创建标签键
      • 实例管理概述
        本文将为您介绍伸缩组内实例管理的相关概念。 在弹性伸缩组内,您可以针对组内实例做很多操作。例如手动将实例移入伸缩组或者手动将实例移出伸缩组,手动调整实例状态,将其设置为保护中状态等。 下表为实例的主要状态说明: 状态 状态属性 状态说明 服务中 稳定状态 当前伸缩组下正在承载业务,且稳定服务的云主机实例。 正在加入 中间状态 当前伸缩组下通过自动伸缩或手动操作而加入的云主机实例。 正在移出 中间状态 当前伸缩组下按照实例移除策略或手动操作而移出的云主机实例。 当实例被添加至伸缩组后,可能会有不同的状态,这些状态组成了实例的生命周期,弹性云主机加入伸缩组的方式共有两种,自动创建的实例与手动创建的实例,对应的生命周期也会有所不同。 实例加入类型 加入方式 生命周期管理 自动创建的实例 通过为伸缩组预设的伸缩配置自动创建的弹性云主机实例,通常包括伸缩策略自动添加等。 此类实例的生命周期是完全跟随弹性伸缩活动进行的,当弹性扩容时,将会自动创建添加实例,当弹性缩容时,将会自动释放移除实例。 手动创建的实例 用户手动创建弹性云主机实例,然后再将其手动移入弹性伸缩组中。 会在弹性缩容时自动释放移除云主机实例。 在这两种生命周期外,用户还可以选择为伸缩组内实例设置保护模式,若设置保护模式,云主机实例将不会被自动释放与移除。
        来自:
        帮助文档
        弹性伸缩服务 AS
        用户指南
        伸缩组内实例管理
        实例管理概述
      • 本地Linux主机使用FTP上传文件到Linux云主机
        1. 首先需要在弹性云主机上搭建FTP站点。具体操作参见弹性云主机-搭建FTP。 2. 以CentOS 7.6操作系统为例,执行以下命令安装ftp。 yum y install ftp 3. 执行以下命令连接云主机。 ftp 云主机弹性公网IP   并根据提示,输入FTP服务的用户名和密码。 4. 上传文件   执行以下命令,将本地文件上传至云主机中。 put 本地主机文件地址
        来自:
        帮助文档
        弹性云主机 ECS
        常见问题
        文件上传/数据传输
        本地Linux主机使用FTP上传文件到Linux云主机
      • ACL关联子网
        ACL支持和子网关联后对子网流量进行过滤防护,本文帮助您快速熟悉ACL关联子网的操作流程。 使用场景 ACL是一个子网级别的防护能力,需要和子网进行关联才可以对子网的流量进行过滤防护。 注意 可用区资源池需要在ACL创建后关联子网;地域资源池需在创建ACL时指定与子网的关联关系。 前提条件 注册天翼云账号,并完成实名认证。具体操作,请参见天翼云账号注册流程。 您已经完成网络ACL的创建。 仅可用区资源池支持,实际情况以控制台展现为准。 操作步骤 1. 登录控制中心。 2. 在控制中心页面左上角点击,选择区域,本文我们选择华东华东1。 3. 依次选择“网络”,单击“虚拟私有云”;进入网络控制台页面。 4. 在左侧导航栏,选择“访问控制ACL”选项。 5. 在“ACL”界面,找到目标网络ACL,单击网络ACL的名称。 6. 进入“ACL”详情页面,点击列表页的“关联子网”。 7. 在弹出的关联子网页面,选择需要关联的子网,单击“确定”。 注意 已被网络ACL关联的的子网将不会展示在其他ACL关联子网的弹窗中,如您需要更换ACL与子网之间的绑定关系,请先解除已绑定的ACL和子网,再进行重新关联。 仅可用区资源池支持在ACL创建后关联子网。 地域资源池需创建ACL时指定与子网的关联关系。 对于地域资源池来说,一个子网同一时间仅支持一个ACL,一个ACL仅支持关联一个子网。 对于可用区资源池来说,一个子网同一时间仅支持一个ACL,一个ACL支持关联多个子网。
        来自:
        帮助文档
        虚拟私有云 VPC
        网络ACL
        ACL关联子网
      • 接入DDoS高防(边缘云版)域名无法访问
        本文介绍接入DDoS高防(边缘云版)域名无法访问的问题现象及问题原因。 问题现象 1、使用DDoS高防(边缘云版)后网站访问出现异常状态码,例如,403,404,5XX。 2、使用DDoS高防(边缘云版)后网站访问URL时出现空白页面。 3、使用DDoS高防(边缘云版)后网站出现其他异常错误。 问题原因 使用DDoS高防(边缘云版)后网站无法访问可能有多种原因。以下是一些常见的原因: 1、DNS解析问题:将域名解析到CDN时出现CNAME错误。 2、网站配置问题:域名的网站配置可能存在问题,导致无法正常访问网站。 3、SSL证书问题:如果您的网站启用了HTTPS协议,请确保域名在DDoS高防(边缘云版)控制台上正确配置了HTTPS证书,并且证书没有过期或损坏。 4、防火墙或安全策略限制:某些源站防火墙或安全策略可能会干扰DDoS高防(边缘云版)的正常回源。 解决方案 1、DNS解析问题:您可以通过ping、nslookup、dig等命令检查域名的DNS解析设置,确保解析结果和DDoS高防(边缘云版)控制台上该加速域名的CNAME值一致。 2、网站配置问题:您可以在DDoS高防(边缘云版)控制台–【域名接入】【网站配置】中检查您的域名配置是否正确。 3、SSL证书问题:您可以在DDoS高防(边缘云版)控制台–【证书管理】中上传更新您的证书。 4、防火墙或安全策略限制:您可以检查您的服务器设置、CDN配置以及网络设备设置,确保没有任何阻止DDoS高防(边缘云版)回源访问的规则或策略。 如果您不确定是边缘节点还是源站的问题,可参考文档:如何确认访问异常是边缘节点问题还是源站问题 进行排查。 除以上可能的原因,您还可以参考以下操作进行处理: 如果访问防护域名返回403状态码,详情请见:访问防护域名响应403状态码。 如果访问防护域名返回404状态码,详情请见:访问防护域名响应404状态码。 如果访问防护域名返回5XX状态码,详情请见:访问防护域名响应5XX状态码。 在使用CDN加速后网站访问URL时出现空白页面,详情请见:访问URL时出现空白页面。 如果以上解决方法均无效,建议您通过提交工单联系天翼云客服帮助您解决问题。
        来自:
        帮助文档
        DDoS高防(边缘云版)
        故障排查
        接入DDoS高防(边缘云版)域名无法访问
      • 基础监控
        查看基础监控数据 1. 登录 CAE 控制台,在左侧导航栏选择应用管理 > 应用列表,单击目标应用名称。 2. 在基础信息 页面的左侧导航,单击基础监控。 3. 在基础监控页面,您可以按需选择统计的时间长度区间,并查看相关的监控数据。
        来自:
      • 支持资源共享的云服务
        本文介绍当前支持资源共享的云服务 支持资源共享的云服务 云服务 资源类型 是否支持主动退出共享单元 相关文档 虚拟私有云 子网 是 共享子网 虚拟私有云 前缀列表 是 前缀列表
        来自:
        帮助文档
        资源共享
        产品介绍
        支持资源共享的云服务
      • Java调用示例
        1. com.ffcs.ebp.ebpsdk.common.Response plaintext 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 plaintext 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 plaintext 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(OpenAPI)
        如何调用API
        Java调用示例
      • 云服务通过KMS实现服务端加密
        本文为您介绍通过KMS实现云硬盘、对象存储、弹性文件等云服务的数据加密最佳实践。 密钥管理系统与天翼云产品无缝集成,在云产品中,仅需要选择在KMS中托管的主密钥,即可轻松实现对云产品数据的服务端加密。 云产品通过集成KMS实现对云上数据的加密存储,密钥由KMS托管,满足监管合规要求。整个服务端加密过程对用户透明无感知,只需要开启加密功能并指定密钥即可。同时用户无须自定构建和维护密钥管理基础设施,节省开发成本。 用户可以选择KMS为云产品自动创建的默认主密钥加密,也可以选择通过KMS创建的用户主密钥。其中默认密钥不收取密钥托管费用。 场景示意图 云产品开启服务端加密流程 加密云硬盘 在创建云硬盘页面,选择开启“磁盘加密”,并在密钥列表中选择加密密钥。 加密对象存储 在创建对象存储Bucket页面,选择开启“服务端加密”,并在密钥列表中选择加密密钥。 加密弹性文件 在创建文件系统页面,选择开启KMS加密,并在密钥列表中选择加密密钥。
        来自:
        帮助文档
        密钥管理
        最佳实践
        云服务通过KMS实现服务端加密
      • 虚拟IP概述
        本文帮助您快速熟悉虚拟IP的定义、特点、组网模式,以及应用场景等内容。 虚拟IP(Virtual IP Address,简称VIP)是一个从子网中分配的内网IP地址,没有分配给真实弹性云服务器网卡。虚拟IP地址拥有私有IP地址同样的网络接入能力,用户也可以像主私网IP地址一样通过虚拟IP去访问弹性云服务器。 您可以通过将虚拟IP与主备弹性云服务器绑定,根据是否需要访问公网可以为虚拟IP绑定一个弹性IP,配合高可用软件(例如Keepalived)使用,实现业务的高可用。 详细信息可参考:虚拟私有云虚拟IP。
        来自:
        帮助文档
        弹性云主机 ECS
        用户指南
        网卡
        虚拟IP概述
      • 创建弹性网卡
        本文主要介绍如何创建弹性网卡。 操作场景 主弹性网卡随实例默认创建,您可以参考以下操作,在弹性网卡控制台创建扩展弹性网卡。 约束与限制 通过管理控制台创建的扩展弹性网卡,必须和其绑定的实例属于同一个虚拟私有云,可以属于不同安全组。 说明 此限制仅针对管理控制台,通过API创建扩展弹性网卡可以与其绑定的实例属于不同的虚拟私有云。 操作步骤 1. 登录管理控制台。 2. 在页面左上角单击图标,打开服务列表,选择“网络 > 虚拟私有云”。进入虚拟私有云列表页面。 3. 在左侧导航栏选择“弹性网卡”。 4. 单击“创建弹性网卡”。 5. 配置弹性网卡参数,如下表所示。 表 参数说明 参数 参数说明 取值样例 名称 弹性网卡的名称,必填项。弹性网卡的名称只能由中文、英文字母、数字、下划线、中划线、点组成,且不能有空格,长度不能大于64个字符。 networkInterface891e 虚拟私有云 选择弹性网卡归属的VPC,必填项。 vpc001 子网 选择弹性网卡归属的子网,必填项。 subnet001 私有IP地址 选择是否自动分配私有IP地址。 安全组 选择弹性网卡所属安全组。 sg001 6. 单击“确定”,完成创建。
        来自:
        帮助文档
        虚拟私有云 VPC
        用户指南
        弹性网卡和辅助弹性网卡
        弹性网卡
        创建弹性网卡
      • 一台弹性云主机是否可以绑定多个弹性IP?
        本节介绍了一台弹性云主机是否可以绑定多个弹性IP的相关内容。 操作场景 一台弹性云主机可以绑定多个弹性IP,但是我们不建议您这样操作。 如果需要配置多个弹性IP,则需要您手工配置路由策略,该操作对用户的网络技术要求较高,请谨慎使用该功能。 配置示例 弹性云主机的配置如下表所示。 表 参数配置 参数 配置 :: 名称 ecstest 镜像 CentOS 6.5 64bit 弹性IP 2个 主网卡 eth0 从网卡 eth1 示例1: 假设您希望访问公网11.11.11.0/24时,使用从网卡eth1,此时可以执行以下操作,配置路由策略。 1. 登录弹性云主机。 2. 执行以下命令,配置路由策略。 ip route add 11.11.11.0/24 dev eth1 via 192.168.2.1 其中,192.168.2.1为从网卡eth1对应网关的IP地址。 示例2: 基于示例1,如果您希望默认公网流量也通过从网卡eth1路由,此时可以执行以下操作,配置路由策略。 1. 登录弹性云主机。 2. 执行以下命令,删除默认路由。 ip route delete default 3. 执行以下命令,配置新的默认路由。 ip route add 0.0.0.0/0 dev eth1 via 192.168.2.1 其中,192.168.2.1为从网卡eth1对应网关的IP地址。
        来自:
        帮助文档
        弹性云主机 ECS
        常见问题
        网络配置
        弹性IP类
        一台弹性云主机是否可以绑定多个弹性IP?
      • 镜像服务
        本文主要介绍镜像服务支持审计的关键操作 镜像服务(Image Management Service,以下简称IMS)提供简单方便的镜像自助管理功能,用户可以使用公共镜像或者私有镜像灵活便捷的申请弹性云主机。同时,用户还能通过已有的云主机或使用外部镜像文件创建私有镜像。 通过云审计服务,您可以记录与镜像服务相关的操作事件,便于日后的查询、审计和回溯。 表 云审计服务支持的IMS操作列表 操作名称 资源类型 事件名称 创建镜像 ims createImage 修改镜像 ims updateImage 批量删除镜像 ims deleteImage 新增成员 ims addMember 批量修改成员 ims updateMember 批量删除成员 ims deleteMember 说明 表2 IMS的操作,为底层(OpenStack)服务触发;部分事件名称与表1中重复,是因为这些事件采用了异步调用的模式:操作下发会产生上表中描述的事件,而操作结果响应会产生表2中描述的事件。 表 云审计服务支持的IMS操作列表(由底层服务触发) 操作名称 资源类型 事件名称 创建镜像 image createImage 修改镜像信息/上传镜像 image updateImage 删除镜像 image deleteImage 添加标签 image addTag 删除标签 image deleteTag 添加镜像成员 image addMember 修改镜像成员信息 image updateMember 删除镜像成员 image deleteMember
        来自:
        帮助文档
        云审计
        用户指南
        支持审计的服务及详细操作列表
        计算
        镜像服务
      • 步骤3:添加SNAT规则
        参数 说明 使用场景 在云间NAT网关高速访问互联网的场景下,此处选择云专线。 表示通过云专线方式接入虚拟私有云的本地数据中心中的服务器,将通过SNAT的方式访问公网。 网段 通过配置云专线本地数据中心的某个网段,使该网段中的服务器通过SNAT方式访问公网。 弹性IP 用来提供互联网访问的公网IP。 这里只能选择没有被绑定的弹性IP,或者被绑定在当前公网NAT网关中非“所有端口”类型DNAT规则上的弹性IP, 或者被绑定到当前公网NAT网关中SNAT规则上的弹性IP。
        来自:
      • 1
      • ...
      • 287
      • 288
      • 289
      • 290
      • 291
      • ...
      • 608
      跳转至
      推荐热词
      天翼云运维管理审计系统天翼云云服务平台云服务备份云日志服务应用运维管理云手机云电脑天翼云云hbase数据库电信云大数据saas服务电信云大数据paas服务轻量型云主机天翼云客户服务电话应用编排服务天翼云云安全解决方案云服务总线CSB天翼云服务器配置天翼云联邦学习产品天翼云云安全天翼云企业上云解决方案天翼云产品天翼云视频云存储

      天翼云最新活动

      安全隔离版OpenClaw

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

      聚力AI赋能 天翼云大模型专项

      大模型特惠专区·Token Plan 轻享包低至9.9元起

      青云志云端助力计划

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

      企业出海解决方案

      助力您的业务扬帆出海,通达全球!

      天翼云信创专区

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

      中小企业服务商合作专区

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

      云上钜惠

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

      天翼云奖励推广计划

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

      产品推荐

      多活容灾服务 MDR

      镜像服务 IMS

      轻量型云主机

      弹性高性能计算 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号