爆款云主机低至25.83元/年
查看详情

活动

天翼云最新优惠活动,涵盖免费试用,产品折扣等,助您降本增效!
热门活动
  • 云聚517 · 好价翼起拼 NEW 爆款云主机低至25.83元/年,参与拼团享更多优惠,拼成得额外优惠券
  • 安全隔离版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(正式版)
智算一体机
  • 智算一体机
智能体引擎
  • 智能体引擎
智算安全专区
  • 大模型安全评测
  • 大模型安全护栏
模型适配专家服务
  • 模型适配专家服务
算力服务商
  • 入驻算力服务商

应用商城

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

定价

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

合作伙伴

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

开发者

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

支持与服务

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

了解天翼云

天翼云秉承央企使命,致力于成为数字经济主力军,投身科技强国伟大事业,为用户提供安全、普惠云服务
品牌介绍
  • 关于天翼云
  • 智算云
  • 天翼云4.0
  • 新闻资讯
  • 天翼云APP
基础设施
  • 全球基础设施
  • 信任中心
最佳实践
  • 精选案例
  • 超级探访
  • 云杂志
  • 分析师和白皮书
  • 天翼云·创新直播间
市场活动
  • 2026智能云生态大会
  • 2025智能云生态大会
  • 2024智算云生态大会
  • 2023云生态大会
  • 2022云生态大会
  • 天翼云中国行
天翼云
  • 活动
  • 息壤智算
  • 产品
  • 解决方案
  • 应用商城
  • 定价
  • 合作伙伴
  • 开发者
  • 支持与服务
  • 了解天翼云
      • 文档
      • 控制中心
      • 备案
      • 管理中心
      电信云对等连接_相关内容
      • Service相关问题
        问题现象 创建LoadBalancer Service后,Service状态为pending,Service事件提示“ failed to ensure load balancer: failed to create elb, error: method not support”。 处理建议 该问题系CCM与资源委托的连接中断,可重启kubesystem命名空间下的ccsecloudcontrollermanager恢复。
        来自:
        帮助文档
        云容器引擎 专有版/托管版
        常见问题
        网络
        Service相关问题
      • 使用FTP上传文件时写入失败,文件传输失败怎么办?
        本节介绍了使用FTP上传文件时写入失败,文件传输失败怎么办的问题描述、约束与限制、可能原因、处理方法。 问题描述 使用FTP上传文件时,写入失败,文件传输失败。 约束与限制 该文档适用于Windows系统上的FTP服务。 可能原因 FTP服务端在NAT环境下,客户端需使用被动模式连接服务端。在这种情况下,服务端的IP地址无法从路由器外部访问,所以应该在服务端的对外IP中填写此服务器的公网IP(弹性公网IP),同时设置端口范围来限制需要通过路由器转发的端口数量。 处理方法 弹性公网IP与私有IP使用NAT方式绑定,所以需要在服务端做响应的配置。 1. 配置服务端对外的公网IP。 选择“Edit > Settings”。 图 配置服务端对外的公网IP 2. 选择“Passive mode settings”,设置数据传输端口范围(如5000050100),并填写弹性公网IP。 图 设置数据传输端口范围 3. 单击“OK”。 4. 安全组中开启入方向tcp协议的5000050100和21端口。 5. 在客户端连接测试。
        来自:
        帮助文档
        弹性云主机 ECS
        常见问题
        文件上传
        使用FTP上传文件时写入失败,文件传输失败怎么办?
      • 云容器集群节点网络延迟
        2、编排演练任务 1. 导航至 故障演练 > 目标应用 > 演练管理 页面,单击新建演练。 2. 在基本信息 页面,按提示填写演练名称和描述,然后单击下一步。 3. 在演练对象配置页面: 配置动作组 :为动作组 命名,资源类型选择云容器引擎节点。 添加实例 :单击添加实例 ,勾选上一步中添加的云容器引擎节点实例。 添加故障动作 :单击立即添加 ,在列表中选择网络延迟动作。 4. 在弹出的参数配置框中,配置所需参数,然后单击确定。 持续时间:故障动作持续时间。 本地端口:仅对源端口为指定端口的流量生效。例如,可设置为您对外提供服务的端口。可以指定多个,使用逗号分隔或者连接符表示范围,例如 80,80008080。 远程端口:仅对目标端口为指定端口的流量生效。例如,可设置为您的应用访问数据库的端口。可以指定多个,使用逗号分隔或者连接符表示范围,例如 80,80008080。 排除端口:排除指定端口的流量。可以指定多个,使用逗号分隔或者连接符表示范围,例如 22,8000 或者 80008010。 这个参数不能与本地端口或者远程端口参数一起使用。 目标IP: 支持通过子网掩码来指定一个网段的IP地址, 例如 192.168.1.0/24. 则 192.168.1.0~192.168.1.255 都生效。也可以指定固定的 IP,如 192.168.1.1 或者 192.168.1.1/32,还可以通过逗号分隔多个参数,例如 192.168.1.1,192.168.2.1。 网卡设备:指定在哪个网络接口上实施故障,网卡可通过ifconfig命令查询,例如 eth0。 排除IP:排除受影响的 IP,支持通过子网掩码来指定一个网段的IP地址, 例如 192.168.1.0/24. 则 192.168.1.0~192.168.1.255 都生效。也可以指定固定的 IP,如 192.168.1.1 或者 192.168.1.1/32,还可以通过逗号分隔多个参数,例如 192.168.1.1,192.168.2.1。 延迟时间(毫秒):为每个数据包增加的固定延迟时长。 延迟浮动值(毫秒):在固定延迟时长上的随机浮动范围。最终延迟为延迟时间 ± 延迟浮动值,用于模拟更真实的网络抖动
        来自:
        帮助文档
        应用高可用
        用户指南
        故障演练服务
        故障动作库
        云容器
        云容器引擎
        云容器集群节点网络延迟
      • 云容器集群节点网络包重复
        2、编排演练任务 1. 导航至 故障演练 > 目标应用 > 演练管理 页面,单击新建演练。 2. 在基本信息 页面,按提示填写演练名称和描述,然后单击下一步。 3. 在演练对象配置页面: 配置动作组 :为动作组 命名,资源类型选择云容器引擎节点。 添加实例 :单击添加实例 ,勾选上一步中添加的云容器引擎节点实例。 添加故障动作 :单击立即添加 ,在列表中选择网络包重复动作。 4. 在弹出的参数配置框中,配置所需参数,然后单击确定。 持续时间:故障动作持续时间。 本地端口:仅对源端口为指定端口的流量生效。例如,可设置为您对外提供服务的端口。可以指定多个,使用逗号分隔或者连接符表示范围,例如 80,80008080。 远程端口:仅对目标端口为指定端口的流量生效。例如,可设置为您的应用访问数据库的端口。可以指定多个,使用逗号分隔或者连接符表示范围,例如 80,80008080。 排除端口:排除指定端口的流量。可以指定多个,使用逗号分隔或者连接符表示范围,例如 22,8000 或者 80008010。 这个参数不能与本地端口或者远程端口参数一起使用。 目标IP: 支持通过子网掩码来指定一个网段的IP地址, 例如 192.168.1.0/24. 则 192.168.1.0~192.168.1.255 都生效。也可以指定固定的 IP,如 192.168.1.1 或者 192.168.1.1/32,还可以通过逗号分隔多个参数,例如 192.168.1.1,192.168.2.1。 网卡设备:指定在哪个网络接口上实施故障,网卡可通过ifconfig命令查询,例如 eth0。 排除IP:排除受影响的 IP,支持通过子网掩码来指定一个网段的IP地址, 例如 192.168.1.0/24. 则 192.168.1.0~192.168.1.255 都生效。也可以指定固定的 IP,如 192.168.1.1 或者 192.168.1.1/32,还可以通过逗号分隔多个参数,例如 192.168.1.1,192.168.2.1。 包重复百分比:数据包被复制的概率(取值 0100)。例如,设置为 10 表示每100个包中约有10个会被复制并重复发送一次。
        来自:
        帮助文档
        应用高可用
        用户指南
        故障演练服务
        故障动作库
        云容器
        云容器引擎
        云容器集群节点网络包重复
      • 云容器集群节点网络延迟(1)
        2、编排演练任务 1. 导航至 故障演练 > 目标应用 > 演练管理 页面,单击新建演练。 2. 在基本信息 页面,按提示填写演练名称和描述,然后单击下一步。 3. 在演练对象配置页面: 配置动作组 :为动作组 命名,资源类型选择云容器引擎节点。 添加实例 :单击添加实例 ,勾选上一步中添加的云容器引擎节点实例。 添加故障动作 :单击立即添加 ,在列表中选择网络延迟动作。 4. 在弹出的参数配置框中,配置所需参数,然后单击确定。 持续时间:故障动作持续时间。 本地端口:仅对源端口为指定端口的流量生效。例如,可设置为您对外提供服务的端口。可以指定多个,使用逗号分隔或者连接符表示范围,例如 80,80008080。 远程端口:仅对目标端口为指定端口的流量生效。例如,可设置为您的应用访问数据库的端口。可以指定多个,使用逗号分隔或者连接符表示范围,例如 80,80008080。 排除端口:排除指定端口的流量。可以指定多个,使用逗号分隔或者连接符表示范围,例如 22,8000 或者 80008010。 这个参数不能与本地端口或者远程端口参数一起使用。 目标IP: 支持通过子网掩码来指定一个网段的IP地址, 例如 192.168.1.0/24. 则 192.168.1.0~192.168.1.255 都生效。也可以指定固定的 IP,如 192.168.1.1 或者 192.168.1.1/32,还可以通过逗号分隔多个参数,例如 192.168.1.1,192.168.2.1。 网卡设备:指定在哪个网络接口上实施故障,网卡可通过ifconfig命令查询,例如 eth0。 排除IP:排除受影响的 IP,支持通过子网掩码来指定一个网段的IP地址, 例如 192.168.1.0/24. 则 192.168.1.0~192.168.1.255 都生效。也可以指定固定的 IP,如 192.168.1.1 或者 192.168.1.1/32,还可以通过逗号分隔多个参数,例如 192.168.1.1,192.168.2.1。 延迟时间(毫秒):为每个数据包增加的固定延迟时长。 延迟浮动值(毫秒):在固定延迟时长上的随机浮动范围。最终延迟为延迟时间 ± 延迟浮动值,用于模拟更真实的网络抖动
        来自:
      • 将MySQL迁移到ClickHouse
        操作步骤 1、购买DTS数据迁移实例。 在管理控制台点击“创建实例”进入订购页面,“实例类型”选择“数据迁移”,“目标库实例”的“数据库类型”选择ClickHouse,选择实例,完成其他信息的填写并完成购买。 说明 迁移前请您详细阅读快速入门准备工作概览网络准备章节内容,了解并做好网络方面的准备工作。 2、进入实例配置页面。 DTS实例购买成功后,进入【数据迁移】实例列表页面,上一步骤购买成功的实例在实例列表中显示状态为“待配置”,进入实例配置页面的操作分两种情况: 当DTS实例的网络接入类型为“公网EIP”时,请先点击“绑定弹性IP”按钮完成公网弹性IP的绑定,然后点击该实例操作列的“实例配置”按钮。 当DTS实例网络接入类型为“VPC网络”时,直接点击该实例操作列的“实例配置”按钮。 3、配置源库及目标库信息。 进入实例配置第一个步骤的【配置源库及目标库信息】页面,填入源库与目标库的相关配置信息,包括数据库类型、IP地址端口、数据库账号、数据库密码等信息。 完成上述信息的填写后,点击源数据库和目标数据库的“测试连接”按钮进行数据库连接测试,检查数据库能否正常连接。 4、配置迁移对象及高级配置。 源库和目标库连通性测试成功后,点下一步按钮,进入实例配置第二个步骤的【配置迁移对象及高级配置】页面,在“源库对象”中选择要迁移的源库对象,选中后点击“>”按钮,将待迁移对象移动到“已选择对象”中。 页面下方展示了检测到的ClickHouse部署架构:如果为非集群,表引擎固定选中ReplacingMergeTree。如果为集群,用户可以选择一个集群名称。如果是单副本集群,则固定选中ReplacingMergeTree引擎;如果是多副本集群,则固定选中ReplicatedReplacingMergeTree引擎。 说明 关于配置迁移对象及高级配置页面的详细说明,请参考数据传输服务 用户指南 数据迁移 实例配置和实例编辑 配置迁移实例文档中配置迁移对象及高级配置详细说明。
        来自:
        帮助文档
        数据传输服务DTS
        用户指南
        数据迁移
        入云
        将MySQL迁移到ClickHouse
      • 支持的监控指标
        本章节主要介绍云搜索服务支持的监控指标。 功能说明 本节定义了云搜索服务上报云监控服务的监控指标的命名空间,监控指标列表和维度定义。用户可以通过云监控服务提供管理控制台或API接口来检索云搜索服务产生的监控指标和告警信息。 命名空间 SYS.ES 监控指标 监控指标说明 指标ID 指标名称 含义 取值范围 测量对象&维度 监控周期(原始指标) status 集群健康状态 该指标用于统计测量监控对象的状态。 0,1,2,3 0:集群是100%可用的。 1:数据是完整的,部分副本缺失。高可用性在某种程度上弱化,存在风险,请及时关注集群情况。 2:数据缺失,集群使用时将出现异常。 3:没有获取到集群状态。 ES集群 1分钟 diskutil 磁盘使用率 该指标用于统计测量对象的磁盘使用率。 单位:百分比 0100% ES集群 1分钟 maxjvmheapusage 最大JVM堆使用率 ES集群节点中最大的JVM堆使用率。 单位:百分比。 0100% ES集群 1分钟 maxjvmyounggctime 最大JVM Young GC耗时 ES集群节点中最大的JVM Young GC耗时。 单位:ms ≥0 ms ES集群 1分钟 maxjvmyounggccount 最大JVM Young GC次数 ES集群节点中最大的JVM Young GC次数。 ≥0 ES集群 1分钟 maxjvmoldgctime 最大JVM Old GC耗时 ES集群节点中最大的JVM Old GC耗时。 单位:ms ≥0 ms ES集群 1分钟 maxjvmoldgccount 最大JVM Old GC次数 ES集群节点中最大的JVM Old GC次数。 ≥0 ES集群 1分钟 totalfssize 文件系统总大小 ES集群的文件系统总大小。 单位:byte ≥0 bytes ES集群 1分钟 freefssize 文件系统可用大小 ES集群的文件系统可用大小。 单位:byte ≥0 bytes ES集群 1分钟 maxcpuusage 最大CPU利用率 ES集群节点中最大的CPU利用率。 单位:百分比 0100% ES集群 1分钟 maxcputimeofjvmprocess 最大JVM进程使用的CPU时间 ES集群节点中最大的JVM进程使用的CPU时间。 单位:ms ≥0 ms ES集群 1分钟 maxvirtualmemorysizeofjvmprocess 最大JVM进程使用的虚拟内存大小 ES集群节点中最大的JVM进程使用的虚拟内存大小。 单位:byte ≥0 bytes ES集群 1分钟 maxcurrentopenedhttpcount 最大当前打开的Http连接数 ES集群节点中最大的当前打开的Http连接数。 ≥0 ES集群 1分钟 maxtotalopenedhttpcount 最大全部打开的Http连接数 ES集群节点中最大的全部打开的Http连接数。 ≥0 ES集群 1分钟 indicescount 索引数量 ES集群的索引数量。 ≥0 ES集群 1分钟 totalshardscount 分片数量 ES集群的分片数量。 ≥0 ES集群 1分钟 primaryshardscount 主分片数量 ES集群的主分片数量。 ≥0 ES集群 1分钟 docscount 文档数量 ES集群的文档数量。 ≥0 ES集群 1分钟 docsdeletedcount 被删除的文档数量 ES集群的被删除的文档数量。 ≥0 ES集群 1分钟 nodescount 节点数量 ES集群的节点数量。 ≥0 ES集群 1分钟 datanodescount 数据节点数量 ES集群的数据节点数量。 ≥0 ES集群 1分钟 coordinatingnodescount 协调节点数量 ES集群的协调节点数量。 ≥0 ES集群 1分钟 masternodescount Master节点数量 ES集群的Master节点数量。 ≥0 ES集群 1分钟 ingestnodescount Client节点数量 ES集群的Client节点数量。 ≥0 ES集群 1分钟
        来自:
        帮助文档
        云搜索服务
        用户指南
        监控集群
        支持的监控指标
      • 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调用示例
      • 相关术语解释
        加速域名 加速域名是用户提供的需要使用全站加速服务的域名,应用于网站、电子邮件等。 边缘节点 边缘节点是相对于网络的复杂结构而提出的一个概念,指距离最终用户接入具有较少的中间环节的网络节点,对最终接入用户有较好的响应能力和连接速度。 回源HOST 回源host决定回源请求访问到源站上的具体某个站点。 例1:源站是域名,源站为www.ctyun.cn,回源host为www.host.ctyun.cn,那么实际回源会请求到www.ctyun.cn解析到的IP,对应的主机上的站点www.host.ctyun.cn。 例2:源站是IP,源站为1.1.1.1,回源host为www.host.ctyun.cn,那么实际回源的是1.1.1.1对应的主机上的站点www.host.ctyun.cn。 协议回源 协议回源指回源时使用的协议和客户端访问资源时的协议保持一致,即如果客户端使用HTTPS方式请求资源,当全站加速节点上未缓存该资源时,节点会使用相同的HTTPS方式回源获取资源;同理如果客户端使用HTTP协议的请求,全站加速节点回源时也使用HTTP协议。 国密算法 国密是由国家密码管理局制定的SSL算法标准,众多政企和银行金融类客户HTTPS业务中对该方案需求迫切。目前天翼云全站加速已支持自主部署域名证书,并支持国密算法,可极好地适配金融、政企客户的HTTPS加速需求。 静态内容 指用户在一定时间内多次访问某一内容或者多个用户访问某一内容,源站响应返回的数据都是相同的内容。例如:html、css和js文件、图片、视频、软件安装包、apk文件、压缩包文件等。静态内容对全站加速来说是可缓存的,可通过在客户控制台上对相应文件设置一定长度的缓存过期时间来实现缓存。
        来自:
        帮助文档
        全站加速
        产品介绍
        相关术语解释
      • 查询域名的IP列表/区域/运营商
        接口功能介绍 调用本接口查询域名的IP地址、ip对应的区域和运营商信息 使用说明 单个用户一分钟限制调用10000次,并发不超过100 接口详情 请求方式:post 请求路径:/auxiliarytools/queryvipsdetailbydomain 请求参数 参数 类型 名称 是否必传 说明 :::: domain list 域名列表 是 最多支持5个 响应参数 参数 类型 说明 ::: code int 状态码 message string 描述信息 result list 返回结果数组 result[].domain string 域名 result[].details list 域名对应的vip列表信息 result[].details[].vips string vip信息,多个用逗号“,”分割 result[].details[].cityName string 城市名称 result[].details[].nodename string 节点名称 result[].details[].provinceName string 省份名称 result[].details[].ispName string 运营商名称 示例 请求路径: 请求示例 { "domain": [ "ctyun.cn" ] } 正确响应示例 { "code": 100000, "message": "success", "result": [ { "domain": "ctyun.cn", "details": [ { "vips": "xx.xx.xx.xx,xx:xx:xx:xx::", "cityName": "呼和浩特市", "nodename": "xxx1", "provinceName": "内蒙古自治区", "ispName": "中国电信" }, { "vips": "xx.xx.xx.xx,xx:xx:xx:xx::", "cityName": "通州区", "nodename": "xxx2", "provinceName": "北京市", "ispName": "中国电信" } ] } ] }
        来自:
        帮助文档
        视频直播
        API参考
        API
        辅助工具
        查询域名的IP列表/区域/运营商
      • Linux云主机卡顿
        带宽使用率高 1. 如果是正常业务访问和正常应用程序导致带宽使用率高,您可以升级服务器的带宽进行解决。 2. 如果是异常应用程序导致带宽使用率高,您可以通过流量监控工具nethogs来实时监测统计各进程的带宽使用情况,进一步定位异常进程。 使用命令yum install nethogs y安装nethogs工具,安装完成后可以查看网络带宽的使用情况。执行命令时指定参数:d设置刷新的时间间隔,默认为1s;t开启跟踪模式;c设置更新次数;device设置要检测的网卡,默认是eth0。 例如:使用nethogs eth1查看eth1网卡上每个进程的网络带宽使用情况。回显参数说明:PID表示进程ID;USER表示运行该程序的用户;PROGRAM表示进程或连接双方的IP地址和端口,第一个是服务器IP和端口,第二个是客户端IP和端口;DEV表示流量要去往的网络端口;SENT表示进程每秒发送的数据量;RECEIVED表示进程每秒接收的数据量。 ![751714098894602240[1].png]( 3. 如果是恶意应用程序导致带宽使用率高,您可以使用kill PID命令终止恶意进程。 4. 如果是非正常业务访问导致带宽使用率高,比如某个IP恶意访问、遭受DDoS攻击或CC攻击,您可以采取以下措施。 使用iptables服务对指定IP地址进行处理,比如屏蔽IP地址或限速。 查看AntiDDoS攻击是否开启,并检查防护策略是否配置合适,请参考开启AntiDDoS防护。 查看CC防护策略是否开启,并检查防护策略是否配置合适,请参考CC防护。 步骤三:问题处理 正常程序:优化程序,或变更云主机配置,请参见实例配置变更。 异常程序:确保异常程序不会影响到系统组件或其他用户,您可以手动关闭进程或隔离异常程序。根据异常原因,您还可以采用适当的措施来修复问题,比如:更新程序代码、修复配置、应用补丁等。
        来自:
        帮助文档
        弹性云主机 ECS
        常见问题
        云主机卡顿
        Linux云主机卡顿
      • 挂载SMB协议类型文件存储到边缘虚拟机(Windows)
        本节介绍SMB协议的文件存储如何挂载到Windows系统的边缘虚拟机上。 操作场景 当创建文件存储后,您需要使用边缘虚拟机来挂载该文件存储,以实现多个边缘虚拟机共享使用文件存储的目的。 本章节以Windows Server 2019操作系统为例进行SMB协议的文件存储的挂载。 同一文件存储不能同时支持NFS协议和SMB协议。 前提条件 在需要操作的地域创建虚拟私有云VPC。 已创建该VPC下的边缘虚拟机,以下将以操作系统为 Windows Server 2019 的边缘虚拟机为例。 已创建该VPC下的文件存储,协议类型为SMB,并获取到文件存储的挂载点名称。 如果需要跨VPC访问文件存储,需要配置对等连接以确保VPC网络互通。 操作步骤 1. 登录ECX控制台。 2. 点击【边缘虚拟机>实例】,进入边缘虚拟机界面,找到即将执行挂载操作的边缘虚拟机所在行。 3. 点击“登录”,使用VNC方式登录已创建好的Windows Server 2019的边缘虚拟机。 4. 对于Windows Server 2016以上的系统,需要配置允许客户端匿名访问,在命令行工具中执行以下命令。 REG ADD HKEYLOCALMACHINESYSTEMCurrentControlSetservicesLanmanWorkstationParameters /f /v AllowInsecureGuestAuth /t REGDWORD /d 1 5. 鼠标移到桌面左下角,右键点击“Windows徽标”按钮,点击打开“文件资源管理器”。 6. 在文件资源管理器的左侧栏找到“此电脑”,右键单击“此电脑”,选择“映射网络驱动器”。 7. 在弹出的对话框中输入文件存储的挂载点名称,即文件存储服务ip路径。 8. 单击“完成”。 9. 挂载成功后,已挂载的文件存储将显示在“此电脑”的网络位置中,您可以像使用普通文件存储一样进行创建、修改或删除文件。
        来自:
        帮助文档
        智能边缘云
        用户指南
        边缘存储
        文件存储
        挂载SMB协议类型文件存储到边缘虚拟机(Windows)
      • WAF监控指标说明
        指标ID 指标名称 指标含义 取值范围 测量对象 监控周期(原始指标) cpuutil CPU使用率 该指标用于统计测量对象的CPU利用率。 单位:百分比 采集方式:100%减去空闲CPU占比 0~100 % 值类型:Float 独享引擎实例 1分钟 memutil 内存使用率 该指标用于统计测量对象的内存利用率。 单位:百分比 采集方式:100%减去空闲内存占比 0~100 % 值类型:Float 独享引擎实例 1分钟 diskutil 磁盘使用率 该指标用于统计测量对象的磁盘利用率。 单位:百分比 采集方式:100%减去空闲磁盘占比 0~100 % 值类型:Float 独享引擎实例 1分钟 diskavailsize 磁盘可用空间 该指标用于统计测量对象的磁盘可用空间。 单位:byte、KB、MB、GB、TB、PB 采集方式:空闲磁盘空间大小 ≥0 byte 值类型:Float 独享引擎实例 1分钟 diskreadbytesrate 磁盘读速率 该指标用于统计测量对象每秒从磁盘读取的字节数。 单位:byte/s、KB/s、MB/s、GB/s 采集方式:每秒从磁盘读取的字节数 ≥0 byte/s 值类型:Float 独享引擎实例 1分钟 diskwritebytesrate 磁盘写速率 该指标用于统计测量对象每秒写入磁盘的字节数。 单位:byte/s、KB/s、MB/s、GB/s 采集方式:每秒写入磁盘的字节数 ≥0 byte/s 值类型:Float 独享引擎实例 1分钟 diskreadrequestsrate 磁盘读操作速率 该指标用于统计测量对象每秒从磁盘读取的请求数。 单位:请求/秒 采集方式:每秒磁盘处理的读取请求数 ≥0 request/s 值类型:Float 独享引擎实例 1分钟 diskwriterequestsrate 磁盘写操作速率 该指标用于统计测量对象每秒写入数据到磁盘的请求次数。 单位:请求/秒 采集方式:每秒磁盘处理的写入请求数 ≥0 request/s 值类型:Float 独享引擎实例 1分钟 networkincomingbytesrate 网络流入速率 该指标用于统计测量对象每秒流入测量对象的网络流量。 单位:byte/s、KB/s、MB/s、GB/s 采集方式:每秒从网络适配器输入的流量 ≥0 byte/s 值类型:Float 独享引擎实例 1分钟 networkoutgoingbytesrate 网络流出速率 该指标用于统计测量对象每秒流出测量对象的网络流量。 单位:byte/s、KB/s、MB/s、GB/s 采集方式:每秒从网络适配器输出的流量 ≥0 byte/s 值类型:Float 独享引擎实例 1分钟 networkincomingpacketsrate 网络流入包速率 该指标用于统计测量对象每秒流入测量对象的数据包数量。 单位:packet/s 采集方式:每秒从网络适配器流入的数据包数 ≥0 packet/s 值类型:Int 独享引擎实例 1分钟 networkoutgoingpacketsrate 网络流出包速率 该指标用于统计测量对象每秒流出测量对象的数据包数量。 单位:packet/s 采集方式:每秒从网络适配器流出的数据包数 ≥0 packet/s 值类型:Int 独享引擎实例 1分钟 concurrentconnections 并发连接数 该指标用于统计测量对象当前处理的并发连接数量。 单位:count 采集方式:系统当前的并发连接数量 ≥0 count 值类型:Int 独享引擎实例 1分钟 activeconnections 活跃连接数 该指标用于统计测量对象当前打开的连接数量。 单位:count 采集方式:系统当前的活跃连接数量 ≥0 count 值类型:Int 独享引擎实例 1分钟 latestpolicysynctime 最近一次策略同步的耗时 该指标用于统计测量对象最近一次同步WAF策略的耗时。 单位:ms 采集方式:最近一次同步WAF策略的耗时 ≥0 ms 值类型:Int 独享引擎实例 1分钟
        来自:
        帮助文档
        Web应用防火墙(独享版)
        监控与审计
        监控
        WAF监控指标说明
      • 安装Windows Server 2008 R2应用服务器
        修改组策略 本地组策略编辑器 1 选择“开始 > 运行”,输入gpedit.msc打开组策略。 2 选择“计算机配置 > 管理模板 > Windows组件 > 远程桌面服务 > 远程桌面会话主机 > 授权”,双击右侧的“使用指定的远程桌面许可证服务器”。 隐藏有关影响RD会话主机服务器的RD授权问题的通知 打开“隐藏有关影响RD会话主机服务器的RD授权问题的通知”对话框,选择“己启用”,单击“下一个设置”。 设置远程桌面授权模式 在“设置远程桌面授权模式”对话框中,选择“己启用”,在“指定RD会话主机服务器的授权模式”下拉列表中选择“按用户”,之后单击“确定”,完成设置。 配置终端服务多用户 1 选择“开始 > 运行”,输入gpedit.msc打开组策略。 2 选择“计算机配置 > 管理模板 > windows组件 > 远程桌面服务 > 远程桌面会话主机 > 连接”。 3 修改“限制连接的数量” 为已启用,允许的最大连接数改为999999。 4 修改“允许远程启动未列出的程序” 为已启用。 5 单击“确定”。 6 选择“计算机配置 > 管理模板 > windows组件 > 远程桌面服务 > 远程桌面会话主机 > 会话时间限制”。 7 修改“设置已中断会话的时间限制”为已启用,修改“结束已断开连接的会话”为1分钟。 8 单击“确定”。
        来自:
        帮助文档
        运维安全中心(云堡垒机)
        用户指南
        安装应用发布服务器
        安装Windows Server 2008 R2应用服务器
      • AOne iOS SDK接入文档
        参数 参数类型 参数含义 是否必传 备注 status NSNumber 隧道状态 是 1|2|3| 断开|连接中 |已连上
        来自:
        帮助文档
        边缘安全加速平台
        公共服务
        天翼云AOne SDK使用指南
        AOne iOS SDK接入文档
      • 开源组件端口列表
        Kafka常用端口 版本:2.8.1 配置参数 默认参数 当前配置端口 端口说明 com.sun.management.jmxremote.port 8096 kafka broker jmx 端口 zookeeper.connect 2181 2181 连接zk client端口 listeners(SASLPLAINTEXT) 9092 9092 kafka SASLPLAINTEXT 端口 listeners(PLAINTEXT) 9091 9091 kafka PLAINTEXT 端口 Spark常用端口 版本:3.2.2 配置参数 默认参数 当前配置端口 端口说明 spark.yarn.historyServer.address 18081 spark history webUI端口 spark.shuffle.service.port 7337 7337 spark shuffle 端口 spark.ui.port 4040 4040 应用 dashboard UI端口 ZooKeeper常用端口 版本:3.7.1 配置参数 默认参数 当前配置端口 端口说明 admin.serverPort 8080 8080 zk admin 服务端口 clientPort 2181 2181 连接zk client端口 com.sun.management.jmxremote.port 2182 2182 zk jmx 端口 server.x 2888:3888;2181 2888:3888;2181 zk 服务端口、选举leader端口,client端口。 Kerberos常用端口 配置参数 默认端口 当前配置端口 端口说明 kdcports 88 88 kdc 端口 ipropport 744 744 iprop 端口 kpasswd 464 464 kpasswd 端口 adminserver 749 749 kerberos admin server 端口
        来自:
        帮助文档
        翼MapReduce
        用户指南
        访问组件Web页面
        开源组件端口列表
      • DRDS事务模型
        XA示例 以下是业务连接DRDS的事务示例。 sql public static final String url "jdbc:mysql://127.0.0.1/employee"; public static final String name "com.mysql.jdbc.Driver"; public static final String user "drdsUser"; public static final String password ""; Class.forName (name);//指定连接类型 try (Connection conn DriverManager. getConnection (drdsUrl, drdsUser, password)) { //开启事务,获取DRDS事务全局唯一的xid try (Resul tSet set statement. executeQuery(”UDAL XA START”)){ while (set.next()) { xidset.getString(1); } } st. execute("insert into custamr values (id, name) (1,"test1") ;");//分片1执行语句 st. execute("insert into custamr values (id, name) (2,"test1") ;");//分片2执行语句 conn.commit() //事务提交 }catch (SQLException e) { conn. rollback(); } 建议 解决分布式事务的推荐方法就是尽量规避分布式事务,事务边界越大(或者单个SQL所执行的数据分片数),那么系统的锁冲突概率越高,系统越难以扩展,性能越低。因此,若想将系统做到很好的扩展性,那么一个重要的原则就是想办法划小事务边界,并尽可能让事务的边界限制在单台机器内。
        来自:
        帮助文档
        分布式关系型数据库
        最佳实践
        DRDS事务模型
      • 代理版本升级
        布式缓存Redis读写分离或Proxy集群类型实例创建后,支持在控制台上升级实例的代理版本。 前提条件 1. Redis缓存实例处于“运行中”状态。 2. Redis缓存实例类型为读写分离或Proxy集群。 影响须知 代理版本升级不会更改实例的规格,仅升级代理的版本。 代理版本升级时会出现1~3次30秒内的连接闪断。 代理版本执行升级一般需要几分钟,升级期间控制台其他功能不可用,建议在业务低峰期操作。 升级完成后,实例的实例ID、连接地址、数据、白名单配置以及已创建的账号密码配置等均不会改变。 操作步骤 1. 登录 Redis管理控制台。 2. 在管理控制台左上角选择实例所在的区域。 3. 在实例列表页,单击目标实例名称进入实例详情页面。 4. 在实例详情页面,点击代理版本后的“升级”按钮,选择需要升级的版本,点击升级,提交升级任务。 说明: 如果代理版本后没有升级按钮,表明该实例没有可升级的代理版本。 5. 升级一般需要几分钟完成。
        来自:
        帮助文档
        分布式缓存服务Redis版
        用户指南
        实例生命周期管理
        代理版本升级
      • 实例小版本升级
        分布式缓存Redis缓存实例创建后,支持在控制台上升级实例的Redis小版本。目前仅部分Redis内核支持部分小版本升级。 前提条件 1. Redis缓存实例处于“运行中”状态。 影响须知 实例小版本升级不会更改实例的规格,仅升级Redis内核的小版本。 实例小版本执行升级时会出现1~2次30秒内的连接闪断。 实例小版本执行升级一般需要几分钟,升级期间控制台其他功能不可用,建议在业务低峰期操作。 升级完成后,实例的实例ID、连接地址、数据、白名单配置以及已创建的账号密码配置等均不会改变。 操作步骤 1. 登录 Redis管理控制台。 2. 在管理控制台左上角选择实例所在的区域。 3. 在实例列表页,单击目标实例名称进入实例详情页面。 4. 在实例详情页面,点击“小版本升级”按钮,选择需要升级的版本,点击保存,提交升级任务。 说明: 如果没有小版本升级按钮,表明该实例引擎没有可升级的小版本。 5. 升级一般需要几分钟完成。
        来自:
        帮助文档
        分布式缓存服务Redis版
        用户指南
        实例生命周期管理
        实例小版本升级
      • 集群架构
        本文介绍文档数据库集群架构的组成。 每个集群即一个独立运行的文档数据库,分片集群架构由路由(mongos)、配置(config)和分片(shard)组成。 数据读写请求经mongos分发,通过查询config信息,并行分配到相应shard,可轻松应对高并发场景,且config和shard均采用三副本架构,保证高可用,集群架构如下图所示。 图 集群架构 lmongos为单节点配置,用户可以通过多个mongos实现负载均衡及故障转移,单个集群实例可支持2~16个mongos节点。 lshard节点是分片服务器,当前架构是三节点副本集。单个集群版实例可支持2~16个shard节点。 lconfig为集群必备组件,负责存储实例的配置信息,由1个副本集构成。 支持通过控制台新增mongos和shard节点,不支持通过原生命令新增节点。 用户不可以直接连接访问config和shard节点,所有数据操作均需要连接mongos进行下发。 目前不支持将现有三节点副本集直接升级到集群模式。
        来自:
        帮助文档
        文档数据库服务
        产品介绍
        系统架构
        集群架构
      • 修改读写分离地址
        本章节会介绍如何修改读写分离地址 操作场景 用户开启读写分离后,支持修改读写分离地址。 注意事项 修改读写分离地址,数据库连接会中断,导致业务中断,请在业务低峰期或者在业务停止期间进行。 约束限制 修改的IP地址也需要在RDS for MySQL实例所在的子网内,并且未使用。 操作步骤 对于开启读写分离的关系型数据库实例,支持更改读写分离地址。 1、登录管理控制台。 2、单击管理控制台左上角的,选择区域和项目。 3、选择“数据库 > 关系型数据库”。进入关系型数据库信息页面。 4、在“实例管理”页面,选择指定的实例,单击实例名称,进入实例基本信息页面。 5、在“基本信息”页“连接信息”模块“读写分离地址”处,单击“修改”。 您也可以在左侧导航栏,单击“数据库代理”,在“读写分离”页面中,在“读写分离地址”处,单击“修改”。 6、在“修改读写分离地址”弹出框中进行修改。单击“确定”,保存修改内容。 7、已使用IP地址,不能再作为实例的新读写分离地址。
        来自:
        帮助文档
        关系数据库MySQL版
        用户指南
        数据库代理(读写分离)
        修改读写分离地址
      • 软件连接器实例安装
        连接器安装选型 注意 连接器所安装部署的虚拟机或服务器需由客户自行购买提供,可根据推荐参数规格进行配置。为保障访问连接高可用,建议您一个连接器集群安装并启动至少2个服务器或虚拟机。 虚拟机或服务器配置 连接器所安装部署的虚拟机或者服务器的配置要求如下: 注意 理论转发带宽指标值,将受连接器转发链路上的带宽值以及链路上的网卡带宽性能影响,例如若需达到100Mbps的转发带宽,则需要使用千兆网卡,若需达到1000Mbps的转发带宽,则需配置使用万兆网卡,若完整访问链路需经过互联网,则将受限于连接器互联网网络的带宽峰值。 CPU核心数 内存(基于本机可用冗余内存存在差异) 磁盘 网络访问要求 理论支持转发带宽 2核 2GB 40GB 主机需要能访问公网(如百度) 200Mbps 2核 4GB 40GB 主机需要能访问公网(如百度) 400Mbps 4核 8GB 40GB 主机需要能访问公网(如百度) 800Mbps 4核 8GB(冗余内存大于4GB) 40GB 主机需要能访问公网(如百度) 1000Mbps 8核 16GB 40GB 主机需要能访问公网(如百度) 1200Mbps
        来自:
        帮助文档
        边缘安全加速平台
        零信任网络服务
        网络管理
        连接器管理
        软件连接器实例安装
      • 文件系统加入AD域
        本文为您介绍在AD域环境搭建好之后,将文件系统加入AD域的操作步骤。 前提条件 已有至少1个可用状态的CIFS文件系统。 已准备AD域环境,已创建AD域控制器,至少有一台客户端已加入域。请参考搭建AD域。 操作步骤 步骤一:生成keytab文件 说明 生成keytab文件的操作在AD域控制器上进行。 1. 登录AD域控制器上为文件系统设置本地域名。 文件系统服务主体依赖域名,因此需要先创建文件系统挂载点对应的域名。需要分别为普通AD域客户端和AD域控制器进行设置。hosts文件路径:C:WindowsSystem32driversetchosts。本地域名配置如下: . 参数说明: 参数 说明 server IP 文件系统挂载地址前的IP。 文件系统本地域名 自定义的文件系统的域名名称。 注:每个文件系统的域名名称应保持唯一。 realm AD域名,如“sfs.com”。 示例: 100.xx.xx.xx testfs01.sfs.com 2. 设置服务账户。按照如下格式使用dsadd命令创建一个服务账号。 注意 您需要记住设置的账户名和密码等信息,后续步骤会用到。 dsadd user CN[AD域服务账户名],DC[AD域域名],DC[com] samid [AD域服务账户名] display [账户描述] pwd [账户密码] pwdneverexpires yes 示例: dsadd user CNNASuser01,DCsfs,DCcom samid fsuser01 display "ctyunnas service account" pwd zmqw@md3 pwdneverexpires yes 3. 执行以下命令为CIFS文件系统域名注册SPN服务主体。 setspn S cifs/[文件系统本地域名]@ [realm] [AD域服务账户名] 参数说明: 参数 说明 文件系统本地域名 在步骤1中为文件系统挂载点设置的域名。 realm AD域名。在搭建AD域环境时设置的域名,本文中为“sfs.com”。 AD域服务账户名 步骤2中的samid。 示例: setspn S cifs/testfs01.sfs.com@sfs.com fsuser01 4. 在AD域控制器上执行以下命令为CIFS文件系统服务主体生成Keytab文件,用于用户的身份认证。 Ktpass princ cifs/[文件系统本地域名]@[realm(必须大写)] ptype KRB5NTPRINCIPAL mapuser [AD域服务账户名]@[realm] crypto All out [密钥表文件生成路径] pass [账户密码] 参数说明: 参数 说明 princ 设置服务主体名称(SPN)。填写步骤1中为文件系统设置的本地域名。 ptype 指定密钥表文件的类型。设置为:KRB5NTPRINCIPAL(用于普通服务账户)。 mapuser AD域服务账户名,填写步骤2中的samid。将SPN映射到一个AD域用户账户,这个用户账户将与SPN相关联,用于身份验证和授权。 crypto 选择用于加密密钥的加密算法:ALL。即所有的加密算法,包括DESCBCCRC、DESCBCMD5、RC4HMACNT等。 out 指定生成的密钥表文件的输出路径和文件名。 /out c:tempservice.keytab将创建一个名为service.keytab的密钥表文件,并将其保存到c:temp目录下。 pass 指定与映射用户账户对应的密码。即在步骤2为创建文件系统服务账户时设置的密码。 示例: Ktpass princ cifs/testfs01.sfs.com@SFS.com ptype KRB5NTPRINCIPAL mapuser fsuser01@sfs.com crypto All out C:nasservice.keytab pass zmqw@md3 5. 将keytab文件传至登录天翼云控制台所用的客户端。 若使用本地电脑登录天翼云控制台,需要将AD域控制器上生成的keytab文件传至本地电脑,具体方法参考:怎样在本地主机和Windows云主机之间互传数据?。此方法需要使用弹性IP,弹性IP是计费服务,计费说明参考计费概述弹性IP。 若为云主机绑定弹性IP,可以直接使用云主机登录天翼云控制台进行接下来的步骤,且不必进行本地电脑与云电脑的keytab文件传输。 说明 远程桌面连接时需要输入云主机的用户名密码,是指在创建云主机时的用户名(默认为Administrator)和密码。
        来自:
        帮助文档
        弹性文件服务 SFS
        用户指南
        高级管理
        AD域
        文件系统加入AD域
      • 禁用卷
        本节主要介绍如何使用API禁用卷。 此操作用来禁用卷。 说明 仅3.9之前版本支持。 注意 如果禁用卷的编号是0(卷的编号可以通过查询指定卷获取),禁用后: 如果客户端保持与该卷所属iSCSI target的连接,则客户端可以继续正常访问该iSCSI target下的其他卷。 如果客户端与该卷所属iSCSI target断开连接后再重新连接,可能会导致无法再正常访问该iSCSI target下的其他卷,如出现此情况,将该卷启用后即可重新正常访问。 请求语法 plaintext PUT /rest/v1/block/lun/lunName/disable HTTP/1.1 Date: date Host: ip:port Authorization: authorization 请求参数 参数 类型 描述 是否必须 lunName String 要禁用卷的卷名称。 取值:长度范围是1~16,只能由字母、数字和短横线()组成,字母区分大小写,且仅支持以字母或数字开头。 是 请求示例1 禁用卷lun02a,卷编号为0。 plaintext PUT /rest/v1/block/lun/lun02a/disable HTTP/1.1 Date: Fri, 29 Jul 2022 07: 12: 46 GMT Authorization: HBlock userName:signature Host: 192.168.0.121: 1443 ContentLength: 0 响应示例1 plaintext HTTP/1.1 200 OK xhblockrequestid: 79c24ffcf1f84c0c8a6a2250cc8ffb96 Connection: keepalive ContentType: application/json;charsetutf8 ContentLength: 151 Date: Fri, 29 Jul 2022 07: 12: 46 GMT Server: HBlock { "data": { "message": "Disable LUN lun02a successfully. This is LUN 0, if the client reconnects, it may not be able to access other LUNs of the target." } }
        来自:
        帮助文档
        存储资源盘活系统
        API参考
        卷管理
        禁用卷
      • Computer Use
        本节介绍Computer Use 在AIuse 云电脑面向 Agent 和自动化系统提供的图形用户界面操作能力。 Computer Use 是 AIuse 云电脑面向 Agent 和自动化系统提供的图形用户界面操作能力。调用方可以通过 SDK 或 MCP 对云电脑执行鼠标、键盘、截图等操作,使 Agent 能够像用户一样观察和操作桌面环境。 能力概述 Computer Use 当前重点覆盖以下能力: 能力 说明 鼠标控制 支持移动、点击、双击、右键、按下、释放、拖拽和滚动 键盘控制 支持按键、组合键和文本输入 屏幕观察 支持截取当前桌面屏幕,用于 Agent 观察界面状态 坐标获取 支持获取当前鼠标位置 等待控制 支持在自动化流程中等待页面或应用响应 工作方式 Computer Use 的典型工作流程如下: 1. 调用方创建连接或会话。 2. 调用截图能力获取当前桌面画面。 3. Agent 或业务逻辑根据界面状态生成下一步操作。 4. 调用鼠标或键盘工具执行操作。 5. 重复观察、决策和执行,直到任务结束。 6. 关闭会话并释放资源。 适用场景 Computer Use 适用于以下场景: 需要操作传统桌面软件,但软件本身不提供开放 API。 需要让 Agent 通过图形界面完成表单填写、信息录入、批量查询等任务。 需要在云端隔离环境中执行桌面自动化。 需要对浏览器、办公软件、业务系统客户端等 GUI 程序进行自动化操作。 需要结合截图能力进行视觉观察和步骤决策。
        来自:
        帮助文档
        天翼云电脑(政企版)
        扩展功能
        Aluse云电脑
        产品介绍
        核心服务
        Computer Use
      • Computer Use(1)
        本节介绍Computer Use 在AIuse 云电脑面向 Agent 和自动化系统提供的图形用户界面操作能力。 Computer Use 是 AIuse 云电脑面向 Agent 和自动化系统提供的图形用户界面操作能力。调用方可以通过 SDK 或 MCP 对云电脑执行鼠标、键盘、截图等操作,使 Agent 能够像用户一样观察和操作桌面环境。 能力概述 Computer Use 当前重点覆盖以下能力: 能力 说明 鼠标控制 支持移动、点击、双击、右键、按下、释放、拖拽和滚动 键盘控制 支持按键、组合键和文本输入 屏幕观察 支持截取当前桌面屏幕,用于 Agent 观察界面状态 坐标获取 支持获取当前鼠标位置 等待控制 支持在自动化流程中等待页面或应用响应 工作方式 Computer Use 的典型工作流程如下: 1. 调用方创建连接或会话。 2. 调用截图能力获取当前桌面画面。 3. Agent 或业务逻辑根据界面状态生成下一步操作。 4. 调用鼠标或键盘工具执行操作。 5. 重复观察、决策和执行,直到任务结束。 6. 关闭会话并释放资源。 适用场景 Computer Use 适用于以下场景: 需要操作传统桌面软件,但软件本身不提供开放 API。 需要让 Agent 通过图形界面完成表单填写、信息录入、批量查询等任务。 需要在云端隔离环境中执行桌面自动化。 需要对浏览器、办公软件、业务系统客户端等 GUI 程序进行自动化操作。 需要结合截图能力进行视觉观察和步骤决策。
        来自:
      • HBlock用户手册和安装包
        版本 发布日期 说明 4.0 2026年03月24日 1. 支持免费版本。 2. 新增调整HBlock服务占用服务器内存参数功能。 3. 上云卷新增挂起卷功能。 4. 支持通过API设置本地卷的扩展属性。 5. 增加设置鉴权方式。 3.10 2025年09月25日 1. 支持target访问权限,实现客户端和target端权限管理。 2. 支持备份,基于快照生成独立于源卷的数据备份文件。 3. 支持设置QoS规则,从带宽和IOPS维度管控流量。 3.9 2025年04月21日 1. 支持快照功能,实现数据的快速备份与恢复。 2. 支持克隆卷功能,用于数据复制、测试验证等场景。 3.8 2025年02月14日 1. API签名方法变更,提升安全性。 2. 存储卷和缓存卷支持将数据上传至兼容 S3 的对象存储。 3. 支持设置基础服务的数据存储目录。 4. Target增加回收策略,支持无卷关联后自动删除。 5. 针对智算、虚拟化以及高可用敏感度等场景,支持一键调整系统参数。 6. 支持设置折叠副本数,允许数据副本/分片放在同一个故障域中。 3.7 2024年08月08日 1. 支持设置集群拓扑。 2. 支持创建和管理多存储池。 3. 支持机房和机架级别故障域。 4. 支持设置卷的高速缓存池。 5. 支持基础服务迁移。 3.6 2024年06月03日 1. 支持存储卷和缓存卷,将数据从后端上传到天翼云对象存储(经典版)I型。 2. 硬件及HBlock监控数据支持对接到Prometheus。 3. 支持HBlock告警信息对接到智能运维平台。 4. 优化读写性能。 5. 增加对龙芯服务器的支持。 3.5 2024年03月04日 1. 支持服务器、数据目录级别的故障域,支持磁盘级别的数据服务。 2. 支持指定基础服务的安装节点。 3. 支持数据目录配额,设置HBlock可写入的数据量上限。 4. Target可被多个客户端发现并连接。 5. 设置卷的最小写入副本数,提高数据写入安全性。 6. 扩大纠删码EC N+M支持范围,满足N+M<128。 3.4 2023年07月12日 1. 卷连接支持一主多备,提高业务可用性。 2. 支持IPv6环境。 3. 控制台提供Dashboard一页式概览。 4. 支持通过命令行查询CHAP密码。 3.3 2022年12月23日 支持安全移除服务器。 3.2 2022年09月26日 1. 监控项增加,扩大覆盖范围。 2. 增加对告警、日志管理的支持。 3. 事件中增加对系统事件的支持。 3.1 2022年06月14日 1. 单机版支持添加多个数据目录。 2. 集群版支持创建Target时指定对应的服务器,支持Target迁移。 3. 支持用户事件的记录和查询。 3.0 2022年01月18日 1. 命令行变更为非交互式。 2. 支持WEB、API调用方式。 3. 卷操作:支持设置卷的高可用类型和卷的写策略。 2.1 2021年08月27日 1. 增加对ARM服务器的支持。 2. 软件许可证:查看许可证时,可以显示允许的容量。 3. 卷操作:支持对卷进行主备切换,即卷对应的Active Target和Standby Target切换。 2.0 2021年05月28日 1. 支持集群版部署。 2. 支持多副本和纠删码数据冗余。
        来自:
        帮助文档
        存储资源盘活系统
        文档下载
        HBlock用户手册和安装包
      • 灾备升主
        本节描述了灾备实例升为主实例的操作场景、注意事项和操作步骤等内容。 操作场景 当主实例所在区域发生突发性自然灾害等状况,主节点无法连接,可将异地灾备实例升为主实例,在应用端修改数据库连接地址后,即可快速恢复应用的业务访问。 注意事项 灾备升主后的新主实例和原主实例将会解除灾备关系。 操作步骤 步骤 1 登录管理控制台。 步骤 2 单击管理控制台左上角的 ,选择区域。 步骤 3 选择“数据库 > 关系型数据库”。进入关系型数据库信息页面。 步骤 4 单击灾备实例名称,进入实例的基本信息页面。 步骤 5 在左侧导航栏,选择“容灾管理”。 步骤 6 在容灾关系列表单击“操作”列的“灾备升主”。 步骤 7 在弹框中,单击“确认”,开始下发灾备升主任务。 步骤 8 可在“任务中心”中查看任务的执行结果,当任务状态为完成时,表示灾备升主任务成功。 步骤 9 需用户手动将业务切换到新主实例。 结束
        来自:
        帮助文档
        关系数据库PostgreSQL版
        用户指南
        容灾管理
        灾备升主
      • 公网NAT网关通过多网关扩展容量
        步骤说明 通过NAT网关SNAT规则的配置,实现网关功能(此处仅为演示,也可以配置为DNAT规则)。 操作步骤 1. 登录天翼云控制中心,选择“网络>NAT网关”,进入NAT网关信息展示页面。点击NAT网关名称,进入NAT网关1详情规则页面。 2. 点击“添加SNAT规则”,弹出添加SNAT规则对话框,进行参数配置。 子网:选择要使用SNAT的对应子网。 弹性IP:选择购买的弹性IP1。 说明:选择多个弹性IP时,业务连接会通过轮询方式分配到多个弹性IP,由于每个连接的流量不同,可能会出现多弹性IP业务流量不均匀的情况,建议您将每个弹性IP加入到同一个共享带宽中以避免单弹性IP带宽达到上限导致业务受损;并且同一个内网IP访问单一目的IP,可能使用不同的EIP。访问单一目标的并发连接数过多时,会造成端口分配失败,需持续监控SNAT源端口溢出丢包数。 3. 配置好相关参数后,点击“确定”,等待SNAT规则状态变为运行中,即完成SNAT规则配置。 4. 选择“网络>NAT网关”,进入NAT网关信息展示页面。点击NAT网关名称,进入NAT网关2详情规则页面。 5. 点击“添加SNAT规则”,弹出添加SNAT规则对话框,进行参数配置。 子网:选择要使用SNAT的对应子网。 弹性IP:选择购买的弹性IP2。 6. 配置好相关参数后,点击“确定”等待SNAT规则状态变为运行中,即完成SNAT规则配置。
        来自:
        帮助文档
        NAT网关
        快速入门
        公网NAT网关
        公网NAT网关通过多网关扩展容量
      • 初始化实例
        本页为您介绍初始化实例的操作步骤。 1. 通过pgxcctl新建一个双CN、双DN的实例,并开启服务。 2. 通过telesql连接到CN节点。 3. 执行sql “create default node group defaultgroup with(dn01, dn02); create sharding group to group defaultgroup;”。
        来自:
        帮助文档
        分布式融合数据库HTAP
        私有云产品
        开发手册
        闪回恢复
        初始化实例
      • 初始化实例
        本页为您介绍初始化实例的操作步骤。 1. 通过pgxcctl新建一个双CN、双DN的实例,并开启服务。 2. 通过telesql连接到CN节点。 3. 执行sql “create default node group defaultgroup with(dn01, dn02); create sharding group to group defaultgroup;”。
        来自:
        帮助文档
        分布式融合数据库HTAP
        私有云产品
        开发手册
        闪回查询
        初始化实例
      • 如何配置本地网关设备
        本文介绍配置本地网关设备相关问题。 使用VPN网关IPsec VPN功能过程中,您需要在本地网关设备添加VPN配置才能与天翼云成功建立IPsec VPN连接。 请参见用户指南> strongSwan配置 请参见用户指南> Juniper防火墙配置 请参见用户指南>思科防火墙配置
        来自:
        帮助文档
        VPN连接
        常见问题
        如何配置本地网关设备
      • 1
      • ...
      • 96
      • 97
      • 98
      • 99
      • 100
      • ...
      • 495
      跳转至
      推荐热词
      天翼云运维管理审计系统天翼云云服务平台云服务备份云日志服务应用运维管理云手机云电脑天翼云云hbase数据库电信云大数据saas服务电信云大数据paas服务轻量型云主机天翼云客户服务电话应用编排服务天翼云云安全解决方案云服务总线CSB天翼云服务器配置天翼云联邦学习产品天翼云云安全天翼云企业上云解决方案天翼云产品天翼云视频云存储

      天翼云最新活动

      云聚517 · 好价翼起拼

      爆款云主机低至25.83元/年,参与拼团享更多优惠,拼成得额外优惠券

      安全隔离版OpenClaw

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

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

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

      青云志云端助力计划

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

      企业出海解决方案

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

      天翼云信创专区

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

      中小企业服务商合作专区

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

      云上钜惠

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

      产品推荐

      弹性云主机 ECS

      GPU云主机

      镜像服务 IMS

      轻量型云主机

      天翼云CTyunOS系统

      训推服务

      应用托管

      一站式智算服务平台

      智算一体机

      推荐文档

      命令窗口

      云课堂 第十八课:天翼云函数服务之“Hello,World!”

      云课堂 第十九课:RDS数据库服务基于SSL的安全访问

      环境准备

      策略管理

      • 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号