活动

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

息壤智算

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

应用商城

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

定价

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

合作伙伴

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

开发者

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

支持与服务

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

了解天翼云

天翼云秉承央企使命,致力于成为数字经济主力军,投身科技强国伟大事业,为用户提供安全、普惠云服务
品牌介绍
  • 关于天翼云
  • 智算云
  • 天翼云4.0
  • 新闻资讯
  • 天翼云APP
基础设施
  • 全球基础设施
  • 信任中心
最佳实践
  • 精选案例
  • 超级探访
  • 云杂志
  • 分析师和白皮书
  • 天翼云·创新直播间
市场活动
  • 2025智能云生态大会
  • 2024智算云生态大会
  • 2023云生态大会
  • 2022云生态大会
  • 天翼云中国行
天翼云
  • 活动
  • 息壤智算
  • 产品
  • 解决方案
  • 应用商城
  • 定价
  • 合作伙伴
  • 开发者
  • 支持与服务
  • 了解天翼云
      • 文档
      • 控制中心
      • 备案
      • 管理中心
      电信云远程医疗_相关内容
      • 迁移后Oracle业务启动与数据核验
        本节为您介绍迁移完成后Oracle业务启动与数据核验的相关步骤。 源机绑定目标机 1. 进入云主机控制台,选择目标端云主机,点击远程登陆。 2. 输入账号密码,检查账号密码等软件配置均和源机一致。 3. 检查目标机磁盘空间使用率是否与源机基本一致 注意:迁移工具会自动将磁盘中的碎文件进行重新写入和重组,因此磁盘的占用大小将略低于源机,而迁移后的文件大小总量是同源机一致的。 执行命令:df TH 4. 查看数据库服务状态,如果数据库为关闭状态则开启数据库。 启动容器服务: systemctl stop docker.socket 启动数据库:docker start oracle 5. 检查增量数据是否同步登录并查看源端数据库中的数据情况,mytable表中的记录数为1100条。 登录并查看目标机启动的数据库,查看数据库中的数据情况,mytable表中的记录数为1100条,与源机相同。 6. 检查数据库版本是否一致。 检查源机数据库系统版本: 检查目标机数据库系统版本,同源机一致: 7. 检查操作系统版本是否一致。 检查源机操作系统版本: 检查目标机操作系统版本,同源机一致: 8. 检查数据库文件总数是否一致。 检查源机oracle数据库所在挂载点的文件总数: 检查目标机oracle数据库所在挂载点的文件总数,同源机一致:
        来自:
        帮助文档
        云迁移服务CMS
        最佳实践
        服务器迁移服务模块
        百G级Oracle服务器迁移最佳实践
        迁移后Oracle业务启动与数据核验
      • AI云电脑简介
        本节介绍天翼量子AI云电脑客户端支持的系统、浏览器版本,以及下载地址。 说明:新版本客户端目前处于灰度测试阶段,将逐步向更多用户开放,感谢您的耐心等待。 若您希望申请试用,可发送邮件至指定邮箱:clouddesktop@chinatelecom.cn 前言 欢迎广大用户下载安装天翼量子AI云电脑全新视觉客户端,当前文档适用于Windows客户端,Mac客户端,Ubuntu瘦终端,安卓瘦终端,国产化终端(银河麒麟/统信UOS),Web客户端的使用帮助文档。 产品定义 天翼量子AI云电脑是云计算技术和终端相结合的创新型产品。依托中国电信优质云网资源,结合自主研发的Clink数据安全传输协议,实现低延时、高画质、带宽占用少、多终端接入,打造从端到云全链路的安全防护体系,用户通过终端快速访问调取云端资源,实现统一管理、便捷维护,多重数据安全防护,随时随地共享数据、安全办公。 客户端支持的最低系统版本 天翼量子AI云电脑客户端支持Windows,MacOS12.0,Android7.0,iOS10、Ubuntu18.04,UOS V20,Kylin V10等以上系统版本。 Web客户端接入的最低浏览器版本 支持Chrome70+、Firefox72+、edge、UOS 5.2.1200+、奇安信1.0.1365+等浏览器接入。Web客户端访问地址:[
        来自:
      • 运营商列表
        运营商 运营商编码 :: 中国电信 001 中国联通 002 中国移动 003 中国铁通 004 教育网 005 鹏博士 006
        来自:
        帮助文档
        全站加速
        API参考
        API概览
        运营商列表
      • 配置定时备份告警与审计信息
        本章节主要介绍配置定时备份告警与审计信息。 操作场景 管理员可通过修改配置文件,实现定时备份FusionInsight Manager的告警信息、Manager审计信息以及所有服务的审计信息到指定的存储位置。 备份支持使用SFTP协议或FTP协议,FTP协议未加密数据可能存在安全风险,建议使用SFTP。 操作步骤 1.以omm用户登录主管理节点。 说明 用户只需在主管理节点执行此操作,不支持在备管理节点上配置定时备份。 2.执行以下命令,切换目录。 cd ${BIGDATAHOME}/omserver/om/sbin 3.执行以下命令,配置定时备份Manager告警、审计或者服务审计信息。 ./setNorthBound.sh t 信息类型 i 远程服务器IP p 服务器使用的SFTP或FTP 端口 u 用户名 d 保存信息的路径 c 时间间隔(分钟) m 每个保存文件的信息记录数 s 备份启停开关 e 指定的协议 例如: ./setNorthBound.sh t alarm i 10.0.0.10 p 22 u sftpuser d /tmp/ c 10 m 100 s true e sftp 此脚本将修改告警信息备份配置文件“alarmcollectupload.properties”。文件存储路径为“${BIGDATAHOME}/omserver/tomcat/webapps/web/WEBINF/classes/config”。 ./setNorthBound.sh t audit i 10.0.0.10 p 22 u sftpuser d /tmp/ c 10 m 100 s true e sftp 此脚本将修改审计信息备份配置文件“auditcollectupload.properties”。文件存储路径为“${BIGDATAHOME}/omserver/tomcat/webapps/web/WEBINF/classes/config”。 ./setNorthBound.sh t serviceaudit i 10.0.0.10 p 22 u sftpuser d /tmp/ c 10 m 100 s true e sftp 此脚本将修改服务审计信息备份配置文件“serviceauditcollectupload.properties”。文件存储路径为“${BIGDATAHOME}/omserver/tomcat/webapps/web/WEBINF/classes/config”。 4.根据界面提示输入用户的密码。密码将加密保存在配置文件中。 Please input sftp/ftp server password: 5.显示如下结果,说明修改成功。备管理节点将自动同步配置文件。 execute command syncfile successfully. Config Succeed.
        来自:
        帮助文档
        翼MapReduce
        用户指南
        FusionInsight Manager操作指导(适用于3.x)
        集群管理
        配置定时备份告警与审计信息
      • 如何确认Manager的主备管理节点
        本章节主要介绍如何确认Manager的主备管理节点。 背景信息 用户可以在Master节点登录到集群中的其他节点,同时登录Master节点后,可以确认Manager的主备管理节点,并在对应的管理节点中执行命令。 在主备模式下,由于Master1和Master2之间会切换,Master1节点不一定是Manager的主管理节点。 操作步骤 1.确认MRS集群的Master节点。 a.登录MapReduce服务管理控制台,选择“集群列表 > 现有集群”,选中一个运行中的集群并单击集群名,进入集群信息页面。查看指定的集群信息。 b.在“节点管理”中查看节点名称,名称中包含“master1”的节点为Master1节点,名称中包含“master2”的节点为Master2节点。 2.确认Manager的主备管理节点。 a.远程登录Master1节点,请参见登录集群节点。 Master节点支持CloudInit特性,Cloudinit预配置的用户名“root”,密码为创建集群时设置的密码。 b.执行以下命令切换用户。 sudo su root su omm c.执行以下命令确认主备管理节点: MRS 3.x之前版本集群执行命令: sh ${BIGDATAHOME}/om0.0.1/sbin/statusoms.sh MRS3.x及之后版本集群执行命令: sh ${BIGDATAHOME}/omserver/om/sbin/statusoms.sh 回显信息中“HAActive”参数值为“active”的节点为主管理节点(如下例中“mgtomsdatsh3011”为主管理节点),参数值为“standby”的节点为备管理节点(如下例中“mgtomsdatsh3012”为备管理节点)。 Ha mode double NodeName HostName HAVersion StartTime HAActive HAAllResOK HARunPhase 192168030 mgtomsdatsh3011 V100R001C01 20141118 23:43:02 active normal Actived 192168024 mgtomsdatsh3012 V100R001C01 20141121 07:14:02 standby normal Deactived 说明 如果当前登录的Master1节点是备管理节点,且需要登录到主管理节点时,请执行以下命令: ssh Master2节点IP地址
        来自:
        帮助文档
        翼MapReduce
        用户指南
        管理集群
        登录集群
        如何确认Manager的主备管理节点
      • 创建自定义集群
        高级配置(可选) MRS集群高级配置拓扑 参数 参数说明 标签 具体请参考添加集群标签。 主机名前缀 用作集群中ECS机器主机名的前缀。 弹性伸缩 请在“硬件配置”页签指定Task节点的规格,然后参考配置弹性伸缩规则配置。 引导操作 具体请参考添加引导操作。MRS 3.x版本暂时不支持该参数。 委托 通过绑定委托,ECS或BMS云服务将有权限来管理您的部分资源,请根据实际业务场景需求确认是否需要配置委托。 例如通过配置ECS委托可自动获取AK/SK访问OBS,具体请参见配置存算分离集群(委托方式)。 MRSECSDEFAULTAGENCY委托拥有对象存储服务的OBSOperateAccess权限和在集群所在区域拥有CESFullAccess(对开启细粒度策略的用户)、CES Administrator和KMS Administrator权限。 指标共享 用于采集大数据组件的监控指标,当用户使用集群过程中出现问题时,供支持人员定位问题。MRS 3.x版本暂时没有该参数。 OBS权限控制 开启细粒度权限控制的用户可以通过该功能实现不同的MRS用户对OBS文件系统下的不同目录有不同的权限。具体请参见配置MRS多用户访问OBS细粒度权限。MRS 3.x版本暂时没有该参数。 数据盘加密 是否对集群挂载的数据盘中的数据进行加密,默认关闭。如需使用该功能,当前用户必须拥有“Security Administrator”和“KMS Administrator”权限。MRS 3.x版本暂时没有该参数。 加密数据盘使用的密钥由数据加密服务(DEW,Data Encryption Workshop)中的密钥管理(KMS,Key Management Service)功能提供,无需您自行构建和维护密钥管理基础设施,安全便捷。通过单击“数据盘加密”开启或关闭数据盘加密功能。 密钥ID 当“数据盘加密”功能开启时,显示该参数。用于显示已选择的密钥名称对应的密钥ID。MRS 3.x版本暂时没有该参数。 密钥名称 当“数据盘加密”功能开启时,需要配置该参数。选择用来加密数据盘的密钥名称,默认选择密钥名称为“evs/default”的默认主密钥,在下拉框中可以选择其他用户主密钥。MRS 3.x版本暂时没有该参数。 使用用户主密钥加密云硬盘,若对用户主密钥执行禁用、计划删除等操作,将会导致云硬盘不可读写,甚至数据永远无法恢复,请谨慎操作。单击“查看密钥列表”,进入密钥管理页面可以创建及管理密钥。 告警 开启告警功能可在集群运行异常或系统故障时,及时通知集群维护人员定位问题。 规则名称 用户自定义发送告警消息的规则名称,只能包含数字、英文字符、中划线和下划线。 主题名称 选择已创建的主题,也可以单击“创建主题”重新创建。新创建的主题请参考配置消息通知章节中的 向主题添加订阅部分,向该主题添加订阅者才能接收发布至主题的消息。 主题是发送消息和订阅通知的信道,为发布者和订阅者提供一个可以相互交流的通道。 日志记录 集群创建失败时,是否收集失败日志。 开启日志记录开关之后将自动收集集群创建失败、扩/缩容失败等场景下的系统日志及相关组件运行日志到OBS文件系统中,该日志用于运维人员快速定位问题。该日志信息将最多保留7天。 Kerberos认证 登录Manager管理页面时是否启用Kerberos认证。 :“Kerberos认证”关闭时,普通用户可使用MRS集群的所有功能。建议单用户场景下使用。不启用Kerberos认证时的安全配置建议请参见集群(未启用Kerberos认证)安全配置建议。 :“Kerberos认证”开启时,普通用户无权限使用MRS集群的“文件管理”和“作业管理”功能,并且无法查看Hadoop、Spark的作业记录以及集群资源使用情况。如果需要使用集群更多功能,需要找Manager的管理员分配权限。建议在多用户场景下使用。 用户名 Manager管理员用户,目前默认为admin用户。 密码 配置Manager管理员用户的密码。 需要满足: 密码长度应在8~26个字符之间,必须包含如下4种字符的组合 − 至少一个小写字母 − 至少一个大写字母 − 至少一个数字 − 至少一个特殊字符:! ?,.: {} [ ]@ $% ^ + / 不能和用户名或倒序的用户名相同 安全程度:颜色条红、橙、绿分别表示密码安全强度弱、中、强。 确认密码 再次输入Manager管理员用户的密码。 登录方式 密码 使用密码方式登录ECS节点。 密码设置约束如下: 1. 字符串类型,可输入的字符串长度为8~26。 2. 至少包含四种字符组合,如大写字母,小写字母,数字,特殊字符(! ?,.: {} [ ]@ $% ^ + /)。 3. 不能与用户名或倒序用户名相同。 密钥对 使用密钥方式登录集群ECS节点。从下拉框中选择密钥对,如果已获取私钥文件,请勾选“我确认已获取该密钥对中的私钥文件SSHkeyxxx ,否则无法登录弹性云主机”。如果没有创建密钥对,请单击“查看密钥对”创建或导入密钥,然后再获取私钥文件。 密钥对即SSH密钥,包含SSH公钥和私钥。您可以新建一个SSH密钥,并下载私钥用于远程登录身份认证。为保证安全,私钥只能下载一次,请妥善保管。 您可以通过以下两种方式中的任意一种使用SSH密钥。 1. 创建SSH密钥:创建SSH密钥,同时会创建公钥和私钥,公钥保存在ECS系统中,私钥保存在用户本机。当登录弹性云主机时,使用公钥和私钥进行鉴权。 2. 导入SSH密钥:当用户已有公钥和私钥,可以选择将公钥导入系统。当登录弹性云主机时,使用公钥和私钥进行鉴权。 通信安全授权 MRS集群通过管理控制台为用户发放、管理和使用大数据组件,大数据组件部署在用户的VPC内部,MRS管理控制台需要直接访问部署在用户VPC内的大数据组件时需要开通相应的安全组规则,而开通相应的安全组规则需要获取用户授权,此授权过程称为通信安全授权。具体请参考授权安全通信。 若不开启通信安全授权,MRS将无法创建集群。
        来自:
        帮助文档
        翼MapReduce
        用户指南
        配置集群
        创建自定义集群
      • 运营商列表
        运营商 运营商编码(string型) 中国电信 001 中国联通 002 中国移动 003 中国铁通 004 教育网 005 鹏博士 006
        来自:
        帮助文档
        CDN加速
        API参考
        API概览
        运营商列表
      • 自建Oracle迁移至中国电信TelePG
        本节问您介绍自建Oracle迁移至中国电信TelePG任务配置。 目标端配置请参照自建Oracle迁移至自建PostgreSQL。
        来自:
        帮助文档
        云迁移服务CMS
        用户指南
        数据库迁移服务模块
        数据传输
        数据迁移
        任务创建
        自建Oracle为源的迁移任务配置
        自建Oracle迁移至中国电信TelePG
      • 订购操作指引
        本节为您介绍天翼游戏云电脑的:① 计费模式; ② 订购、续订、加时、套餐升级操作指引。 订购方式 支持三种订购方式: 1. 移动端订购:通过"天翼云电脑"或"天翼云"APP内"订购云电脑"功能直接购买。 2. 天翼云官网订购:通过登录天翼云官网,进入++天翼AI云电脑(公众版)++订购。 3. 线下营业厅订购:请前往当地中国电信营业厅咨询办理。 说明 各订购方式的详细操作流程请参考 ++订购操作指引++。订购完成后即可登录使用游戏云电脑,详细操作请参考 ++登录操作指引++。 计费模式说明 游戏云电脑为包月型(预付费)产品。包月周期从购买成功时起,至下月同一日期同一时刻结束(若下月无对应日期,则按当月最后一天计算)。有效期内,系统将按秒累计实际开机时长(关机不计费)。每个新周期开始时,可用总时长将自动重置,未使用时长不累积。 例如:在5月1日 11:00:00 订购一台游戏云电脑,选择: 使用时段:晚间 计费套餐:包月15小时 购买时长:2个月 可用情况如下: 周期 包月有效期 可使用总时长 可开机时段 1 5月1日 11:00:00 6月1日 11:00:00 15 小时 每天19时至次日7时 2 6月1日 11:00:00 7月1日 11:00:00 15 小时 每天19时至次日7时 说明 单个用户每自然月(每月1日至月末最后一天)最多可订购 5台 游戏云电脑,次月1日自动重置。
        来自:
        帮助文档
        天翼云电脑(公众版)
        游戏云电脑
        订购操作指引
      • 登录
        天翼AI云电脑是不是和正常电脑用起来一样的? 天翼AI云电脑和正常电脑的使用体验接近,使用天翼云电脑客户端登录您的帐号,可以快速登录使用了,所有软件及文件数据存在云端,更安全便捷。 其他运营商的网络能否接入? 只要能接入互联网,不管是手机、宽带、WIFI都可以接入,但是建议您优先使用中国电信的网络,质量和体验更有保障。 是否可以设置计算机账户和密码? 您可以在天翼AI云电脑“控制面板”中的“用户帐户”中设置计算机账户和密码。但天翼AI云电脑连接时默认选择administrator帐户登录。 移动客户端APP是否支持指纹识别安全登录? 可以在“我”页面中的“账号与安全”,进入账号与安全页面。 开通指纹识别的设置后,退出应用后再次打开则需要指纹识别安全登录。 天翼AI云电脑的单台出口带宽不够,感觉什么也干不了? 天翼AI云电脑(政企版)的上行带宽是通过用户自行开通或分配带宽大小,默认提供300M下行带宽,购买超过300M上行带宽时上下行对称。 天翼AI云电脑登录提示"无法连接服务器,请稍后再试"怎么办? 排查方法: 1. 若为互联网登录请检查本地外网访问是否正常。 2. 若为专线接入,请telnet 专线接入地址 8810是否通,如专线接入地址:10.125.78.16 ,可以使用Windows系统下的“命令提示符”软件,输入“telnet 10.125.78.16 8810” 确认结果是否是否通,若不通请排查网络。
        来自:
        帮助文档
        天翼云电脑(政企版)
        常见问题
        登录
      • 运营商列表
        运营商 运营商编码 中国电信 001 中国联通 002 中国移动 003 中国铁通 004 教育网 005 鹏博士 006
        来自:
        帮助文档
        应用加速(文档停止维护)
        API参考
        API概览
        运营商列表
      • AI云电脑简介
        本节介绍天翼量子AI云电脑客户端支持的系统、浏览器版本,以及下载地址。 说明:新版本客户端目前处于灰度测试阶段,将逐步向更多用户开放,感谢您的耐心等待。 若您希望申请试用,可发送邮件至指定邮箱:clouddesktop@chinatelecom.cn 1. 前言 欢迎广大用户下载安装天翼量子AI云电脑全新视觉客户端,当前文档适用于Windows客户端,Mac客户端,Ubuntu瘦终端,安卓瘦终端,国产化终端(银河麒麟/统信UOS),Web客户端的使用帮助文档。 2. 产品定义 天翼量子AI云电脑是云计算技术和终端相结合的创新型产品。依托中国电信优质云网资源,结合自主研发的Clink数据安全传输协议,实现低延时、高画质、带宽占用少、多终端接入,打造从端到云全链路的安全防护体系,用户通过终端快速访问调取云端资源,实现统一管理、便捷维护,多重数据安全防护,随时随地共享数据、安全办公。 3. 客户端支持的最低系统版本 天翼量子AI云电脑客户端支持Windows,MacOS12.0,Android7.0,iOS10、Ubuntu18.04,UOS V20,Kylin V10等以上系统版本。 4. Web客户端接入的最低浏览器版本 支持Chrome70+、Firefox72+、edge、UOS 5.2.1200+、奇安信1.0.1365+等浏览器接入。Web客户端访问地址:[
        来自:
        帮助文档
        天翼云电脑(公众版)
        电脑终端指南(新)
        AI云电脑简介
      • Skills
        id19d31edc90271) 方式二:单独分享skill给好友 如何将OpenClaw的Skills迁移至其他云电脑? OpenClaw云电脑的Skills 技能:cctvnewsfetcher 描述:专注于国内时政信息的获取工具。它可以精准检索并提取指定日期的《央视新闻联播》文字内容或摘要,帮助你快速掌握官方发布的重大新闻和政策动向。 提示词:帮我获取昨天《央视新闻联播》的完整内容。 技能:chinatelecommail 描述:预置集成的邮件管理助手,适配中国电信邮箱服务。只需简单配置,即可直接通过对话完成邮件的发送、接收、查询和管理,实现办公自动化。 提示词:给张三发个邮件,告诉他会议推迟到下午3点。 配置方式: 1. 生成OpenClaw专属邮箱授权密码,再把密码记录起来。 2. 在OpenClaw中配置账号密码:“这是邮箱账号和密码:[邮箱账号] [邮箱密码] 请配置到技能:chinatelecommail的config.toml文件中”。 技能:findskills 描述:OpenClaw 生态的“导航员”。只需用自然语言描述需求,它就能推荐并一键安装合适的技能,极大降低了探索成本。 提示词:我想找一个能智能处理图片的技能,有推荐的吗?
        来自:
        帮助文档
        天翼云电脑(政企版)
        最佳实践
        OpenClaw云电脑指南
        Skills
      • 术语解释
        本文将为您介绍算力专网产品相关的术语概念。 中国电信下一代承载网(CN2DCI) 中国电信融合原CN2和DCI两张网络之后构建的面向2B业务的差异化、智能化、服务化专用承载网,目标建成技术领先、行业最有竞争力的2B网络。 CN2DCI网络新平面 中国电信基于SDN架构,在CN2DCI网络基础上通过引入SRv6+EVPN等技术重构的高质量、高可靠、差异化精品网络。 SRv6(Segment Routing IPv6) SRv6是一种网络转发技术,SR指Segment Routing技术,v6指原生IPv6,SRv6就是IPv6+Segment Routing,是SR技术的IPv6演进版本。 多协议标签交换(MPLS,MultiProtocol Label Switch) 结合二层交换和三层路由的集成数据传输技术。 虚拟专网(VPN,Virtual Private Network) 利用开放的公共网络建立专用数据传输通道,将不同站点连接起来并提供安全的端到端数据通信的广域网组网方式。 EVPN (Ethernet Virtual Private Network) 是一种用于二层网络互联的VPN技术,采用类似于BGP/MPLS IP VPN 的机制,通过扩展BGP协议,使用扩展后的可达性信息,使不同站点的二层网络间的MAC地址学习和发布过程从数据平面转移到控制平面。 运营商边界设备(PE,Provider Edge) 位于运营商网络边缘,用于连接CE设备,一般为路由器。 客户边界设备(CE,Customer Edge) 位于客户站点边缘,用于连接PE设备,一般为路由器。
        来自:
        帮助文档
        算力专网
        产品介绍
        术语解释
      • 弹性伸缩服务产品服务协议
        天翼云提供产品服务协议,请您点击查看。 中国电信天翼弹性伸缩服务是产品服务协议,详情请参见《天翼云弹性伸缩服务等级协议》。
        来自:
        帮助文档
        弹性伸缩服务 AS
        相关协议
        弹性伸缩服务产品服务协议
      • 《非经营性互联网信息服务备案管理办法》(信息产业部令第33号)
        《非经营性互联网信息服务备案管理办法》(信息产业部令第33号) 《非经营性互联网信息服务备案管理办法》已经2005年1月28日中华人民共和国信息产业部第十二次部务会议审议通过,现予发布,自2005年3月20日起施行。 部长: 王旭东 二 OO 五年二月八日 非经营性互联网信息服务备案管理办法 第一条 为规范非经营性互联网信息服务备案及备案管理,促进互联网信息服务业的健康发展,根据《互联网信息服务管理办法》、《中华人民共和国电信条例》及其他相关法律、行政法规的规定,制定本办法。   第二条 在中华人民共和国境内提供非经营性互联网信息服务,履行备案手续,实施备案管理,适用本办法。   第三条 中华人民共和国信息产业部(以下简称“信息产业部”)对全国非经营性互联网信息服务备案管理工作进行监督指导,省、自治区、直辖市通信管理局(以下简称“省通信管理局”)具体实施非经营性互联网信息服务的备案管理工作。 拟从事非经营性互联网信息服务的,应当向其住所所在地省通信管理局履行备案手续。   第四条 省通信管理局在备案管理中应当遵循公开、公平、公正的原则,提供便民、优质、高效的服务。 非经营性互联网信息服务提供者从事非经营性互联网信息服务时,应当遵守国家的有关规定,接受有关部门依法实施的监督管理。   第五条 在中华人民共和国境内提供非经营性互联网信息服务,应当依法履行备案手续。 未经备案,不得在中华人民共和国境内从事非经营性互联网信息服务。 本办法所称在中华人民共和国境内提供非经营性互联网信息服务,是指在中华人民共和国境内的组织或个人利用通过互联网域名访问的网站或者利用仅能通过互联网IP地址访问的网站,提供非经营性互联网信息服务。   第六条 省通信管理局通过信息产业部备案管理系统,采用网上备案方式进行备案管理。   第七条 拟从事非经营性互联网信息服务的,应当通过信息产业部备案管理系统如实填报《非经营性互联网信息服务备案登记表》(以下简称“《备案登记表》”,格式见本办法附录),履行备案手续。 信息产业部根据实际情况,对《备案登记表》进行调整和公布。   第八条 拟通过接入经营性互联网络从事非经营性互联网信息服务的,可以委托因特网接入服务业务经营者、因特网数据中心业务经营者和以其他方式为其网站提供接入服务的电信业务经营者代为履行备案、备案变更、备案注销等手续。   第九条 拟通过接入中国教育和科研计算机网、中国科学技术网、中国国际经济贸易互联网、中国长城互联网等公益性互联网络从事非经营性互联网信息服务的,可以由为其网站提供互联网接入服务的公益性互联网络单位代为履行备案、备案变更、备案注销等手续。   第十条 因特网接入服务业务经营者、因特网数据中心业务经营者以及以其他方式为网站提供接入服务的电信业务经营者和公益性互联网络单位(以下统称“互联网接入服务提供者”)不得在已知或应知拟从事非经营性互联网信息服务的组织或者个人的备案信息不真实的情况下,为其代为履行备案、备案变更、备案注销等手续。   第十一条 拟从事新闻、出版、教育、医疗保健、药品和医疗器械、文化、广播电影电视节目等互联网信息服务,根据法律、行政法规以及国家有关规定应经有关主管部门审核同意的,在履行备案手续时,还应向其住所所在地省通信管理局提交相关主管部门审核同意的文件。 拟从事电子公告服务的,在履行备案手续时,还应当向其住所所在地省通信管理局提交电子公告服务专项备案材料。   第十二条 省通信管理局在收到备案人提交的备案材料后,材料齐全的,应在二十个工作日内予以备案,向其发放备案电子验证标识和备案编号,并通过信息产业部备案管理系统向社会公布有关备案信息;材料不齐全的,不予备案,在二十个工作日内通知备案人并说明理由。   第十三条 非经营性互联网信息服务提供者应当在其网站开通时在主页底部的中央位置标明其备案编号,并在备案编号下方按要求链接信息产业部备案管理系统网址,供公众查询核对。 非经营性互联网信息服务提供者应当在其网站开通时,按照信息产业部备案管理系统的要求,将备案电子验证标识放置在其网站的指定目录下。   第十四条 非经营性互联网信息服务提供者在备案有效期内需要变更其《备案登记表》中填报的信息的,应当提前三十日登陆信息产业部备案系统向原备案机关履行备案变更手续。   第十五条 非经营性互联网信息服务提供者在备案有效期内需要终止提供服务的,应当在服务终止之日登陆信息产业部备案系统向原备案机关履行备案注销手续。   第十六条 非经营性互联网信息服务提供者应当保证所提供的信息内容合法。   本办法所称非经营性互联网信息服务提供者提供的信息内容,是指互联网信息服务提供者的网站的互联网域名或IP地址下所包括的信息内容。   第十七条 省通信管理局应当建立信誉管理、社会监督、情况调查等管理机制,对非经营性互联网信息服务活动实施监督管理。   第十八条 互联网接入服务提供者不得为未经备案的组织或者个人从事非经营性互联网信息服务提供互联网接入服务。   对被省通信管理局处以暂时关闭网站或关闭网站处罚的非经营性互联网信息服务提供者或者非法从事非经营性互联网信息服务的组织或者个人,互联网接入服务提供者应立即暂停或终止向其提供互联网接入服务。   第十九条 互联网接入服务提供者应当记录其接入的非经营性互联网信息服务提供者的备案信息。 互联网接入服务提供者应当依照国家有关规定做好用户信息动态管理、记录留存、有害信息报告等网络信息安全管理工作,根据信息产业部和省通信管理局的要求对所接入用户进行监督。   第二十条 省通信管理局依法对非经营性互联网信息服务备案实行年度审核。 省通信管理局通过信息产业部备案管理系统,采用网上方式进行年度审核。   第二十一条 非经营性互联网信息服务提供者应当在每年规定时间登陆信息产业部备案管理系统,履行年度审核手续。   第二十二条 违反本办法第五条的规定,未履行备案手续提供非经营性互联网信息服务的,由住所所在地省通信管理局责令限期改正,并处一万元罚款;拒不改正的,关闭网站。 超出备案的项目提供服务的,由住所所在地省通信管理局责令限期改正,并处五千元以上一万元以下罚款;拒不改正的,关闭网站并注销备案。   第二十三条 违反本办法第七条第一款的规定,填报虚假备案信息的,由住所所在地省通信管理局关闭网站并注销备案。   第二十四条 违反本办法第十条、第十八条、第十九条的规定的,由违法行为发生地省通信管理局责令改正,并处一万元罚款。   第二十五条 违反本办法第十三条的规定,未在其备案编号下方链接信息产业部备案管理系统网址的,或未将备案电子验证标识放置在其网站指定目录下的,由住所所在地省通信管理局责令改正,并处五千元以上一万元以下罚款。   第二十六条 违反本办法第十四条、第十五条的规定,未在规定时间履行备案变更手续,或未依法履行备案注销手续的,由住所所在地省通信管理局责令限期改正,并处一万元罚款。   第二十七条 非经营性信息服务提供者违反国家有关法律规定,依法应暂停或终止服务的,省通信管理局可根据法律、行政法规授权的同级机关的书面认定意见,暂时关闭网站,或关闭网站并注销备案。   第二十八条 在年度审核时,非经营性互联网信息服务提供者有下列情况之一的,由其住所所在地的省通信管理局通过信息产业部备案系统等媒体通告责令其限期改正;拒不改正的,关闭网站并注销备案:   (一)未在规定时间登陆备案网站提交年度审核信息的;   (二)新闻、教育、公安、安全、文化、广播电影电视、出版、保密等国家部门依法对各自主管的专项内容提出年度审核否决意见的。   第二十九条 本办法自2005年3月20日起施行。
        来自:
        帮助文档
        ICP备案
        法律法规及公告
        法律法规
        《非经营性互联网信息服务备案管理办法》(信息产业部令第33号)
      • Skills
        id19d0f2bd9b048) 方式二:单独分享skill给好友 如何将OpenClaw的Skills迁移至其他云电脑? OpenClaw云电脑的Skills 技能:cctvnewsfetcher 描述:专注于国内时政信息的获取工具。它可以精准检索并提取指定日期的《央视新闻联播》文字内容或摘要,帮助你快速掌握官方发布的重大新闻和政策动向。 提示词:帮我获取昨天《央视新闻联播》的完整内容。 技能:chinatelecommail 描述:预置集成的邮件管理助手,适配中国电信邮箱服务。只需简单配置,即可直接通过对话完成邮件的发送、接收、查询和管理,实现办公自动化。 提示词:给张三发个邮件,告诉他会议推迟到下午3点。 配置方式: 1. 生成OpenClaw专属邮箱授权密码,再把密码记录起来。 2. 在OpenClaw中配置账号密码:“这是邮箱账号和密码:[邮箱账号] [邮箱密码] 请配置到技能:chinatelecommail的config.toml文件中”。 技能:findskills 描述:OpenClaw 生态的“导航员”。只需用自然语言描述需求,它就能推荐并一键安装合适的技能,极大降低了探索成本。 提示词:我想找一个能智能处理图片的技能,有推荐的吗?
        来自:
        帮助文档
        天翼云电脑(公众版)
        OpenClaw云电脑指南
        Skills
      • 自建MySQL迁移至中国电信TelePG
        本节为您介绍自建MySQL迁移至中国电信TelePG任务配置。 目标端配置请参照自建MySQL迁移至自建PostgreSQL。
        来自:
        帮助文档
        云迁移服务CMS
        用户指南
        数据库迁移服务模块
        数据传输
        数据迁移
        任务创建
        自建MySQL为源的迁移任务配置
        自建MySQL迁移至中国电信TelePG
      • 运营商列表
        运营商 运营商编码(string型) 运营商编码(int型) 中国电信 001 1 中国联通 002 2 中国移动 003 3 中国铁通 004 4 教育网 005 5 鹏博士 006 6
        来自:
        帮助文档
        视频直播
        API参考
        API概览
        运营商列表
      • 运营商列表
        运营商 运营商编码 中国电信 001 中国联通 002 中国移动 003 中国铁通 004 教育网 005 鹏博士 006
        来自:
        帮助文档
        安全加速(文档停止维护)
        API参考
        API概览
        运营商列表
      • 手动搭建LNMP环境
        禁止root远程登录,输入Y Success. By default, MySQL comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment. Remove test database and access to it? (Press yY for Yes, any other key for No) : Y 是否删除test库和对它的访问权限,输入Y Dropping test database... Success. Removing privileges on test database... Success. Reloading the privilege tables will ensure that all changes made so far will take effect immediately. Reload privilege tables now? (Press yY for Yes, any other key for No) : Y 是否重新加载授权表,输入Y Success. All done! 安装PHP 1. 依次执行以下命令,安装PHP 7和一些所需的PHP扩展。 plaintext rpm Uvh Uvh yum/el7/webtaticrelease.rpm yum y install php70wtidy php70wcommon php70wdevel php70wpdo php70wmysql php70wgd php70wldap php70wmbstring php70wmcrypt php70wfpm 2. 执行以下命令,验证PHP的安装版本。 plaintext php v 回显如下类似信息: plaintext PHP 7.0.31 (cli) (built: Jul 20 2018 08:55:22) ( NTS ) Copyright (c) 19972017 The PHP Group Zend Engine v3.0.0, Copyright (c) 19982017 Zend Technologies 3. 执行以下命令,启动PHP服务并设置开机自启动。 plaintext systemctl start phpfpm systemctl enable phpfpm 4. 修改nginx配置文件以支持PHP。 执行以下命令打开配置文件“default.conf”。 plaintext vim /etc/nginx/conf.d/default.conf 按i键进入编辑模式。 修改打开的“default.conf”文件。 在所支持的主页面格式中添加php格式的主页,如下所示: plaintext location / { root /usr/share/nginx/html; index index.php index.html index.htm; } 取消如下内容的注释,并设置字体加粗部分为nginx的默认路径,如下所示: plaintext location ~ .php$ { root html; fastcgipass 127.0.0.1:9000; fastcgiindex index.php; fastcgiparam SCRIPTFILENAME /usr/share/nginx/html$fastcgiscriptname; include fastcgiparams; } 按Esc键退出编辑模式,并输入 :wq保存后退出。 执行以下命令,重新载入nginx的配置文件。 plaintext service nginx reload
        来自:
        帮助文档
        弹性云主机 ECS
        最佳实践
        搭建环境相关最佳实践
        手动搭建LNMP环境
      • 自建PostgreSQL迁移至中国电信TelePG
        本节为您介绍自建PostgreSQL迁移至中国电信TelePG任务配置。 目标端配置请参照自建PostgreSQL迁移至自建PostgreSQL
        来自:
        帮助文档
        云迁移服务CMS
        用户指南
        数据库迁移服务模块
        数据传输
        数据迁移
        任务创建
        自建PostgreSQL为源的迁移任务配置
        自建PostgreSQL迁移至中国电信TelePG
      • 添加防护对象
        后续配置 添加防护对象后,网站访问流量将经过WAF保护,您还需要完善以下防护配置,才能实现针对性的网站防护。 配置 说明 相关文档 Web基础防护 覆盖OWASP常见安全威胁,支持SQL注入、XSS、文件包含、远程命令执行、目录穿越、文件上传、CSRF、SSRF、命令注入、模板注入、XML实体注入等攻击检测和拦截。 Web基础防护 CC防护 CC防护支持默认防护策略及灵活的自定义防护策略。自定义策略支持依托精准访问控制规则进行特征识别,并根据访问源IP/ SESSION控制访问频率,恶意流量通过阻断、人机验证等处置手段有效缓解CC攻击。 CC防护 BOT防护 提供公开类型、协议特征、自定义会话特征等多种判定维度的防护策略,支持根据BOT会话行为特征设置BOT对抗策略,对BOT行为进行处理,有效防护搜索引擎、扫描器、脚本工具等爬虫攻击。 BOT防护 精准访问控制 支持基于IP、URL、Referer、UserAgent等请求特征进行多维度组合,定义访问匹配条件过滤访问请求,实现针对性的攻击阻断。 精准访问控制 IP黑白名单 支持添加始终拦截与始终放行的黑白名单IP/IP地址段,增强防御准确性。 IP黑白名单 地域访问控制 支持针对地理位置的黑名单封禁,可指定需要封禁的国家、地区,阻断该区域的来源IP的访问。 地域访问控制 防敏感信息泄露 支持对网站返回的内容进行过滤(拦截、脱敏展示),过滤内容包括敏感信息、关键字和响应码。 防敏感信息泄露 网页防篡改 通过缓存页面和锁定访问请求,可避免页面被恶意篡改而带来的负面影响,对重点静态页面进行保护。 网页防篡改 Cookie防篡改 通过对Cookie中的字段增加完整性校验保护,WAF会新增一个Cookie字段用于篡改校验。 Cookie防篡改 隐私屏蔽 通过设置隐私屏蔽规则,可屏蔽用户隐私信息,避免用户隐私信息出现在系统记录的日志中。 隐私屏蔽
        来自:
        帮助文档
        Web应用防火墙(原生版)
        用户指南
        接入WAF
        网站接入WAF防护(独享型接入)
        添加防护对象
      • 线下IDC通过专线和代理服务器接入HSS
        为代理服务器安装Nginx 1. 登录代理服务器 2. 检查yum源 检查yum源是否有nginx软件包,如果没有nginx软件包需完成yum源配置,并临时绑定公网IP,待安装结束之后再解绑公网IP。 远程登录代理服务器,执行以下命令检查yum源中是否存在nginx包。 EulerOS、CentOS、Red Hat等支持rpm安装软件的OS:yum list nginx Ubuntu、Debian等支持deb安装软件的OS:apt list nginx 3. 安装nginx 1. 执行以下命令使用yum安装nginx。 EulerOS、CentOS、Red Hat等支持rpm安装软件的OS:yum install y nginx Ubuntu、Debian等支持deb安装软件的OS:apt install –y nginx b.查看nginx是否安装成功。 EulerOS、CentOS、Red Hat等支持rpm安装软件的OS:自动执行安装,出现下图所示“Complete!”表示安装成功。 Ubuntu、Debian等支持deb安装软件的OS:执行命令pkg –l nginx,查看回显结果如下图所示,表示安装成功。 4. 配置Nginx 1. 执行以下命令进入nginx目录:cd /etc/nginx/ 2. 执行以下命令完成证书自签:openssl req new x509 nodes out server.pem keyout server.keydays 36500,命令执行后需填写证书相关信息,自定义填写即可。 5. 执行以下操作修改nginx.conf。 1. 依次执行以下命令修改nginx.conf:rm f nginx.conf;vi nginx.conf 2. 按“i”键进入编辑模式,并将以下内容复制粘贴到nginx.conf中。 3. plaintext user nginx; workerprocesses auto; errorlog /var/log/nginx/error.log; pid /run/nginx.pid; include /usr/share/nginx/modules/.conf; events { workerconnections 1024; } http { logformat main '$remoteaddr $remoteuser [$timelocal] "$request" ' '$status $bodybytessent "$httpreferer" ' '"$httpuseragent" "$httpxforwardedfor"'; accesslog /var/log/nginx/access.log main; sendfile on; tcpnopush on; tcpnodelay on; keepalivetimeout 65; typeshashmaxsize 2048; include /etc/nginx/mime.types; defaulttype application/octetstream;
        来自:
        帮助文档
        企业主机安全
        最佳实践
        线下IDC通过专线和代理服务器接入HSS
      • 产品优势
        本文为您介绍分布式消息服务MQTT的产品优势。 分布式消息服务MQTT(Message Queuing Telemetry Transport)是一种轻量级的、发布/订阅模式的消息传递协议,通常用于分布式消息服务和物联网(IoT)应用。以下是MQTT的一些优势: 轻量级协议: MQTT是一种非常轻量级的协议,适用于各种网络环境,包括低带宽、高延迟或不稳定的网络。这使得它非常适合在IoT设备之间传递消息,因为这些设备通常有限的资源和能源。 发布/订阅模式: MQTT采用发布/订阅模式,允许客户端订阅感兴趣的主题,以接收与这些主题相关的消息。这种模式具有灵活性,能够支持多对多的通信,而不需要直接点对点的连接。 异步通信: MQTT允许异步通信,客户端可以发布消息而不必等待接收方的响应。这有助于提高系统的响应速度和吞吐量。 保留消息: MQTT支持保留消息,这意味着最新的消息可以保留在主题中,以便新订阅者可以立即获取到最新数据,而不必等待下一个消息发布。 服务质量(QoS): MQTT允许设置不同级别的服务质量,从不保证消息送达(QoS 0)到确保消息送达且不重复传递(QoS 2)。这使得可以根据应用的需求选择适当的传递质量。 可伸缩性: MQTT协议可以在大规模分布式系统中轻松扩展,支持成千上万的客户端同时连接到Broker,使其适用于大型IoT解决方案。 消息过滤: MQTT支持使用通配符来订阅主题,这允许客户端根据特定模式匹配多个主题,以接收相关消息。 支持遗愿消息: MQTT支持遗愿消息(Will Messages),允许客户端指定在异常断开连接时发送一条预定义消息。这对于检测设备在线状态非常有用。 跨平台和多语言支持: MQTT具有广泛的跨平台和多语言支持,因此可以在各种设备和编程语言上使用,使得它非常灵活。 安全性: MQTT可以与安全机制(如TLS/SSL)结合使用,确保消息在传输过程中的安全性和隐私。 总的来说,MQTT是一种高效、灵活和可靠的协议,特别适用于分布式消息传递和IoT应用,因此在物联网、远程监控、实时通信等领域得到广泛应用。它的轻量级特性和异步通信使得它成为连接数众多的设备的理想选择。
        来自:
        帮助文档
        分布式消息服务MQTT
        产品介绍
        产品优势
      • 查询域名的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列表/区域/运营商
      • Java调用示例
        1. com.ffcs.ebp.ebpsdk.common.Response java package com.ffcs.ebp.ebpsdk.common; import java.util.Map; public class Response { private int statusCode; private String body; private Map headers; public int getStatusCode() { return statusCode; } public void setStatusCode(int statusCode) { this.statusCode statusCode; } public String getBody() { return body; } public void setBody(String body) { this.body body; } public Map getHeaders() { return headers; } public void setHeaders(Map headers) { this.headers headers; } } 2. com.ffcs.ebp.ebpsdk.YunSign java package com.ffcs.ebp.ebpsdk; import com.ffcs.ebp.ebpsdk.common.Response; import org.apache.commons.lang.StringUtils; import org.apache.http.Header; import org.apache.http.HttpEntity; import org.apache.http.client.config.AuthSchemes; import org.apache.http.client.config.CookieSpecs; import org.apache.http.client.config.RequestConfig; import org.apache.http.client.methods.; import org.apache.http.config.Registry; import org.apache.http.config.RegistryBuilder; import org.apache.http.conn.socket.ConnectionSocketFactory; import org.apache.http.conn.socket.PlainConnectionSocketFactory; import org.apache.http.conn.ssl.NoopHostnameVerifier; import org.apache.http.conn.ssl.SSLConnectionSocketFactory; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.impl.conn.PoolingHttpClientConnectionManager; import org.apache.http.util.EntityUtils; import javax.crypto.Mac; import javax.crypto.spec.SecretKeySpec; import javax.net.ssl.SSLContext; import javax.net.ssl.TrustManager; import javax.net.ssl.X509TrustManager; import java.io.; import java.net.URLEncoder; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.security.KeyManagementException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.security.cert.X509Certificate; import java.text.SimpleDateFormat; import java.util.; public class YunSign { private String url; private String body; private String ak; private String sk; private String uuId; private int temp; private String contentType; private String queryStr; private Map headerMap; private String afterQuery; public YunSign(String url, String ak, String sk, String uuId, String body, int temp, String contentType, String queryStr, Map headerMap) { this.url url; if(body.equals("{}")){ body ""; } this.body body; this.ak ak; this.sk sk; this.uuId uuId; this.temp temp; this.contentType contentType; this.queryStr queryStr; this.headerMap headerMap; } public Response toDo(String method, int connectTimeout, int connectionRequestTimeout, int socketTimeout) { Response response null; method method.toUpperCase(); switch (method) { case "POST": response doPost(connectTimeout, connectionRequestTimeout, socketTimeout); break; case "GET": if (StringUtils.isNotEmpty(this.body)) { response sendJsonByGetReq(connectTimeout, connectionRequestTimeout, socketTimeout); } else { response doGet(connectTimeout, connectionRequestTimeout, socketTimeout); } break; case "DELETE": if (StringUtils.isNotEmpty(this.body)) { response sendJsonByDeleteReq(connectTimeout, connectionRequestTimeout, socketTimeout); } else { response doDelete(connectTimeout, connectionRequestTimeout, socketTimeout); } break; case "PUT": response doPut(connectTimeout, connectionRequestTimeout, socketTimeout); break; case "PATCH": response doPatch(connectTimeout, connectionRequestTimeout, socketTimeout); break; case "HEAD": response doHead(connectTimeout, connectionRequestTimeout, socketTimeout); break; } return response; } private String getSign(Date eopDate) { String calculateContentHash getSHA256(body); //报文原封不动进行sha256摘要 // System.out.println("calculateContentHash:" + calculateContentHash); SimpleDateFormat TIMEFORMATTER new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'"); SimpleDateFormat DATEFORMATTER new SimpleDateFormat("yyyyMMdd"); String singerDate TIMEFORMATTER.format(eopDate); String singerDd DATEFORMATTER.format(eopDate); //header的key按照26字母进行排序, 以&作为连接符连起来 try { String CampmocalHeader String.format("ctyuneoprequestid:%sneopdate:%sn", this.uuId, singerDate); String sigture CampmocalHeader + "n" + this.afterQuery + "n" + calculateContentHash; // System.out.println("sigture:" + sigture); byte[] ktime HmacSHA256(singerDate.getBytes(), sk.getBytes()); // System.out.println("ktime:" + HexUtils.bytes2Hex(ktime)); byte[] kAk HmacSHA256(ak.getBytes(), ktime); // System.out.println("kAk:" + HexUtils.bytes2Hex(kAk)); byte[] kdate HmacSHA256(singerDd.getBytes(), kAk); // System.out.println("kdate:" + HexUtils.bytes2Hex(kdate)); String Signature Base64.getEncoder().encodeToString(HmacSHA256(sigture.getBytes("UTF8"), kdate)); // System.out.println("Signature:" + Signature); String signHeader String.format("%s Headersctyuneoprequestid;eopdate Signature%s", ak, Signature); // System.out.println("signHeader:" + signHeader); return signHeader; } catch (Exception e) { e.printStackTrace(); } return null; } / 在调用SSL之前需要重写验证方法,取消检测SSL 创建ConnectionManager,添加Connection配置信息 @return HttpClient 支持https / private static CloseableHttpClient sslClient() { try { // 在调用SSL之前需要重写验证方法,取消检测SSL X509TrustManager trustManager new X509TrustManager() { @Override public X509Certificate[] getAcceptedIssuers() { return null; } @Override public void checkClientTrusted(X509Certificate[] xcs, String str) { } @Override public void checkServerTrusted(X509Certificate[] xcs, String str) { } }; SSLContext ctx SSLContext.getInstance(SSLConnectionSocketFactory.TLS); ctx.init(null, new TrustManager[]{trustManager}, null); SSLConnectionSocketFactory socketFactory new SSLConnectionSocketFactory(ctx, NoopHostnameVerifier.INSTANCE); // 创建Registry RequestConfig requestConfig RequestConfig.custom().setCookieSpec(CookieSpecs.STANDARDSTRICT) .setExpectContinueEnabled(Boolean.TRUE).setTargetPreferredAuthSchemes(Arrays.asList(AuthSchemes.NTLM, AuthSchemes.DIGEST)) .setProxyPreferredAuthSchemes(Arrays.asList(AuthSchemes.BASIC)).build(); Registry socketFactoryRegistry RegistryBuilder. create() .register("http", PlainConnectionSocketFactory.INSTANCE) .register("https", socketFactory).build(); // 创建ConnectionManager,添加Connection配置信息 PoolingHttpClientConnectionManager connectionManager new PoolingHttpClientConnectionManager(socketFactoryRegistry); CloseableHttpClient closeableHttpClient HttpClients.custom().setConnectionManager(connectionManager) .setDefaultRequestConfig(requestConfig).build(); return closeableHttpClient; } catch (KeyManagementException ex) { throw new RuntimeException(ex); } catch (NoSuchAlgorithmException ex) { throw new RuntimeException(ex); } } public Response doGet(int connectTimeout, int connectionRequestTimeout, int socketTimeout) { CloseableHttpClient httpClient null; CloseableHttpResponse response null; Response result new Response(); try { // 通过址默认配置创建一个httpClient实例 if (temp 0) {//绕过SSL httpClient sslClient(); } else { httpClient HttpClients.createDefault(); } String query this.queryStr; this.afterQuery encodeQueryStr(query); //创建HttpGet远程连接实例 HttpGet httpGet; if (StringUtils.isNotEmpty(this.afterQuery)) { httpGet new HttpGet(this.url + "?" + this.afterQuery); } else { httpGet new HttpGet(this.url); } // 设置请求头信息,鉴权 SimpleDateFormat TIMEFORMATTER new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'"); Date eopDate new Date(); httpGet.setHeader("ContentType", this.contentType); httpGet.setHeader("ctyuneoprequestid", this.uuId); httpGet.setHeader("EopAuthorization", getSign(eopDate)); httpGet.setHeader("Eopdate", TIMEFORMATTER.format(eopDate)); if (this.headerMap ! null) { for (String key : this.headerMap.keySet()) { if (StringUtils.isNotEmpty(key)) { httpGet.setHeader(key, this.headerMap.get(key).toString()); } } } System.out.println("请求头部 "); for (Header header : httpGet.getAllHeaders()) { System.out.println(header.getName() + ":" + header.getValue()); } System.out.println(); // 设置配置请求参数 RequestConfig requestConfig RequestConfig.custom().setConnectTimeout(connectTimeout)// 连接主机服务超时时间 .setConnectionRequestTimeout(connectionRequestTimeout)// 请求超时时间 .setSocketTimeout(socketTimeout)// 数据读取超时时间 .build(); // 为httpGet实例设置配置 httpGet.setConfig(requestConfig); // 执行get请求得到返回对象 response httpClient.execute(httpGet); // 通过返回对象获取返回数据 HttpEntity entity response.getEntity(); // 通过EntityUtils中的toString方法将结果转换为字符串 result.setBody(EntityUtils.toString(entity, "UTF8")); result.setStatusCode(response.getStatusLine().getStatusCode()); Map headerMap new HashMap (); for (Header header : response.getAllHeaders()) { headerMap.put(header.getName(), header.getValue()); } result.setHeaders(headerMap); } catch (Exception e) { e.printStackTrace(); } finally { // 关闭资源 if (null ! response) { try { response.close(); } catch (IOException e) { e.printStackTrace(); } } if (null ! httpClient) { try { httpClient.close(); } catch (IOException e) { e.printStackTrace(); } } } return result; } public Response sendJsonByGetReq(int connectTimeout, int connectionRequestTimeout, int socketTimeout) { Response result new Response(); CloseableHttpClient client null; CloseableHttpResponse response null; try { // 通过址默认配置创建一个httpClient实例 if (temp 0) {//绕过SSL client sslClient(); } else { client HttpClients.createDefault(); } String query this.queryStr; this.afterQuery encodeQueryStr(query); // 创建HttpGetWithEntity远程连接实例 HttpGetWithEntity httpGetWithEntity; if (StringUtils.isNotEmpty(this.afterQuery)) { httpGetWithEntity new HttpGetWithEntity(this.url + "?" + this.afterQuery); } else { httpGetWithEntity new HttpGetWithEntity(this.url); } // 配置请求参数实例 RequestConfig requestConfig RequestConfig.custom().setConnectTimeout(connectTimeout)// 设置连接主机服务超时时间 .setConnectionRequestTimeout(connectionRequestTimeout)// 设置连接请求超时时间 .setSocketTimeout(socketTimeout)// 设置读取数据连接超时时间 .build(); // 为HttpGetWithEntity实例设置配置 httpGetWithEntity.setConfig(requestConfig); // 设置请求头 SimpleDateFormat TIMEFORMATTER new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'"); Date eopDate new Date(); httpGetWithEntity.setHeader("ContentType", this.contentType); httpGetWithEntity.setHeader("ctyuneoprequestid", this.uuId); httpGetWithEntity.setHeader("EopAuthorization", getSign(eopDate)); httpGetWithEntity.setHeader("Eopdate", TIMEFORMATTER.format(eopDate)); if (this.headerMap ! null) { for (String key : this.headerMap.keySet()) { if (StringUtils.isNotEmpty(key)) { httpGetWithEntity.setHeader(key, this.headerMap.get(key).toString()); } } } System.out.println("请求头部 "); for (Header header : httpGetWithEntity.getAllHeaders()) { System.out.println(header.getName() + ":" + header.getValue()); } System.out.println(); HttpEntity httpEntity new StringEntity(body, Charset.forName("UTF8")); httpGetWithEntity.setEntity(httpEntity); //执行请求操作,并拿到结果(同步阻塞) response client.execute(httpGetWithEntity); //获取结果实体 HttpEntity entity response.getEntity(); result.setBody(EntityUtils.toString(entity, "UTF8")); result.setStatusCode(response.getStatusLine().getStatusCode()); Map headerMap new HashMap (); for (Header header : response.getAllHeaders()) { headerMap.put(header.getName(), header.getValue()); } result.setHeaders(headerMap); } catch (Exception e) { e.printStackTrace(); } finally { // 关闭资源 if (null ! response) { try { response.close(); } catch (IOException e) { e.printStackTrace(); } } if (null ! client) { try { client.close(); } catch (IOException e) { e.printStackTrace(); } } } return result; } public Response doPost(int connectTimeout, int connectionRequestTimeout, int socketTimeout) { CloseableHttpClient httpClient null; CloseableHttpResponse httpResponse null; Response result new Response(); try { // 创建httpClient实例 if (temp 0) {//绕过SSL httpClient sslClient(); } else { httpClient HttpClients.createDefault(); } String query this.queryStr; this.afterQuery encodeQueryStr(query); // 创建httpPost远程连接实例 HttpPost httpPost; if (StringUtils.isNotEmpty(this.afterQuery)) { httpPost new HttpPost(this.url + "?" + this.afterQuery); } else { httpPost new HttpPost(this.url); } // 配置请求参数实例 RequestConfig requestConfig RequestConfig.custom().setConnectTimeout(connectTimeout)// 设置连接主机服务超时时间 .setConnectionRequestTimeout(connectionRequestTimeout)// 设置连接请求超时时间 .setSocketTimeout(socketTimeout)// 设置读取数据连接超时时间 .build(); // 为httpPost实例设置配置 httpPost.setConfig(requestConfig); // 设置请求头 SimpleDateFormat TIMEFORMATTER new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'"); Date eopDate new Date(); httpPost.setHeader("ContentType", this.contentType); httpPost.setHeader("ctyuneoprequestid", this.uuId); httpPost.setHeader("EopAuthorization", getSign(eopDate)); httpPost.setHeader("Eopdate", TIMEFORMATTER.format(eopDate)); if (this.headerMap ! null) { for (String key : this.headerMap.keySet()) { if (StringUtils.isNotEmpty(key)) { httpPost.setHeader(key, this.headerMap.get(key).toString()); } } } System.out.println("请求头部 "); for (Header header : httpPost.getAllHeaders()) { System.out.println(header.getName() + ":" + header.getValue()); } System.out.println(); // 为httpPost设置封装好的请求参数 StringEntity data new StringEntity(body, Charset.forName("UTF8")); httpPost.setEntity(data); // httpClient对象执行post请求,并返回响应参数对象 httpResponse httpClient.execute(httpPost); // 从响应对象中获取响应内容 HttpEntity entity httpResponse.getEntity(); result.setBody(EntityUtils.toString(entity, "UTF8")); result.setStatusCode(httpResponse.getStatusLine().getStatusCode()); Map headerMap new HashMap (); for (Header header : httpResponse.getAllHeaders()) { headerMap.put(header.getName(), header.getValue()); } result.setHeaders(headerMap); } catch (Exception e) { e.printStackTrace(); } finally { // 关闭资源 if (null ! httpResponse) { try { httpResponse.close(); } catch (IOException e) { e.printStackTrace(); } } if (null ! httpClient) { try { httpClient.close(); } catch (IOException e) { e.printStackTrace(); } } } return result; } public Response doPut(int connectTimeout, int connectionRequestTimeout, int socketTimeout) { CloseableHttpClient httpClient null; CloseableHttpResponse httpResponse null; Response result new Response(); try { // 创建httpClient实例 if (temp 0) {//绕过SSL httpClient sslClient(); } else { httpClient HttpClients.createDefault(); } String query this.queryStr; this.afterQuery encodeQueryStr(query); // 创建HttpPut远程连接实例 HttpPut httpPut; if (StringUtils.isNotEmpty(this.afterQuery)) { httpPut new HttpPut(this.url + "?" + this.afterQuery); } else { httpPut new HttpPut(this.url); } // 配置请求参数实例 RequestConfig requestConfig RequestConfig.custom().setConnectTimeout(connectTimeout)// 设置连接主机服务超时时间 .setConnectionRequestTimeout(connectionRequestTimeout)// 设置连接请求超时时间 .setSocketTimeout(socketTimeout)// 设置读取数据连接超时时间 .build(); // 为httpPost实例设置配置 httpPut.setConfig(requestConfig); // 设置请求头 SimpleDateFormat TIMEFORMATTER new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'"); Date eopDate new Date(20321900,01,05); httpPut.setHeader("ContentType", this.contentType); httpPut.setHeader("ctyuneoprequestid", this.uuId); httpPut.setHeader("EopAuthorization", getSign(eopDate)); httpPut.setHeader("Eopdate", TIMEFORMATTER.format(eopDate)); if (this.headerMap ! null) { for (String key : this.headerMap.keySet()) { if (StringUtils.isNotEmpty(key)) { httpPut.setHeader(key, this.headerMap.get(key).toString()); } } } System.out.println("请求头部 "); for (Header header : httpPut.getAllHeaders()) { System.out.println(header.getName() + ":" + header.getValue()); } System.out.println(); // 为httpPost设置封装好的请求参数 StringEntity data new StringEntity(body, Charset.forName("UTF8")); httpPut.setEntity(data); // httpClient对象执行post请求,并返回响应参数对象 httpResponse httpClient.execute(httpPut); // 从响应对象中获取响应内容 HttpEntity entity httpResponse.getEntity(); result.setBody(EntityUtils.toString(entity, "UTF8")); result.setStatusCode(httpResponse.getStatusLine().getStatusCode()); Map headerMap new HashMap (); for (Header header : httpResponse.getAllHeaders()) { headerMap.put(header.getName(), header.getValue()); } result.setHeaders(headerMap); } catch (Exception e) { e.printStackTrace(); } finally { // 关闭资源 if (null ! httpResponse) { try { httpResponse.close(); } catch (IOException e) { e.printStackTrace(); } } if (null ! httpClient) { try { httpClient.close(); } catch (IOException e) { e.printStackTrace(); } } } return result; } public Response doPatch(int connectTimeout, int connectionRequestTimeout, int socketTimeout) { CloseableHttpClient httpClient null; CloseableHttpResponse httpResponse null; Response result new Response(); try { // 创建httpClient实例 if (temp 0) {//绕过SSL httpClient sslClient(); } else { httpClient HttpClients.createDefault(); } String query this.queryStr; this.afterQuery encodeQueryStr(query); // 创建HttpPatch远程连接实例 HttpPatch httpPatch; if (StringUtils.isNotEmpty(this.afterQuery)) { httpPatch new HttpPatch(this.url + "?" + this.afterQuery); } else { httpPatch new HttpPatch(this.url); } // 配置请求参数实例 RequestConfig requestConfig RequestConfig.custom().setConnectTimeout(connectTimeout)// 设置连接主机服务超时时间 .setConnectionRequestTimeout(connectionRequestTimeout)// 设置连接请求超时时间 .setSocketTimeout(socketTimeout)// 设置读取数据连接超时时间 .build(); // 为httpPost实例设置配置 httpPatch.setConfig(requestConfig); // 设置请求头 SimpleDateFormat TIMEFORMATTER new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'"); Date eopDate new Date(); httpPatch.setHeader("ContentType", this.contentType); httpPatch.setHeader("ctyuneoprequestid", this.uuId); httpPatch.setHeader("EopAuthorization", getSign(eopDate)); httpPatch.setHeader("Eopdate", TIMEFORMATTER.format(eopDate)); if (this.headerMap ! null) { for (String key : this.headerMap.keySet()) { if (StringUtils.isNotEmpty(key)) { httpPatch.setHeader(key, this.headerMap.get(key).toString()); } } } System.out.println("请求头部 "); for (Header header : httpPatch.getAllHeaders()) { System.out.println(header.getName() + ":" + header.getValue()); } System.out.println(); // 为httpPost设置封装好的请求参数 StringEntity data new StringEntity(body, Charset.forName("UTF8")); httpPatch.setEntity(data); // httpClient对象执行post请求,并返回响应参数对象 httpResponse httpClient.execute(httpPatch); // 从响应对象中获取响应内容 HttpEntity entity httpResponse.getEntity(); result.setBody(EntityUtils.toString(entity, "UTF8")); result.setStatusCode(httpResponse.getStatusLine().getStatusCode()); Map headerMap new HashMap (); for (Header header : httpResponse.getAllHeaders()) { headerMap.put(header.getName(), header.getValue()); } result.setHeaders(headerMap); } catch (Exception e) { e.printStackTrace(); } finally { // 关闭资源 if (null ! httpResponse) { try { httpResponse.close(); } catch (IOException e) { e.printStackTrace(); } } if (null ! httpClient) { try { httpClient.close(); } catch (IOException e) { e.printStackTrace(); } } } return result; } public Response doDelete(int connectTimeout, int connectionRequestTimeout, int socketTimeout) { CloseableHttpClient httpClient null; CloseableHttpResponse response null; Response result new Response(); try { // 通过址默认配置创建一个httpClient实例 if (temp 0) {//绕过SSL httpClient sslClient(); } else { httpClient HttpClients.createDefault(); } String query this.queryStr; this.afterQuery encodeQueryStr(query); // 创建httpGet远程连接实例 HttpDelete httpDelete; if (StringUtils.isNotEmpty(this.afterQuery)) { httpDelete new HttpDelete(this.url + "?" + this.afterQuery); } else { httpDelete new HttpDelete(this.url); } // 设置请求头信息,鉴权 SimpleDateFormat TIMEFORMATTER new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'"); Date eopDate new Date(); httpDelete.setHeader("ContentType", this.contentType); httpDelete.setHeader("ctyuneoprequestid", this.uuId); httpDelete.setHeader("EopAuthorization", getSign(eopDate)); httpDelete.setHeader("Eopdate", TIMEFORMATTER.format(eopDate)); if (this.headerMap ! null) { for (String key : this.headerMap.keySet()) { if (StringUtils.isNotEmpty(key)) { httpDelete.setHeader(key, this.headerMap.get(key).toString()); } } } System.out.println("请求头部 "); for (Header header : httpDelete.getAllHeaders()) { System.out.println(header.getName() + ":" + header.getValue()); } System.out.println(); // 设置配置请求参数 RequestConfig requestConfig RequestConfig.custom().setConnectTimeout(connectTimeout)// 连接主机服务超时时间 .setConnectionRequestTimeout(connectionRequestTimeout)// 请求超时时间 .setSocketTimeout(socketTimeout)// 数据读取超时时间 .build(); // 为httpGet实例设置配置 httpDelete.setConfig(requestConfig); // 执行get请求得到返回对象 response httpClient.execute(httpDelete); // 通过返回对象获取返回数据 HttpEntity entity response.getEntity(); // 通过EntityUtils中的toString方法将结果转换为字符串 result.setBody(EntityUtils.toString(entity, "UTF8")); result.setStatusCode(response.getStatusLine().getStatusCode()); Map headerMap new HashMap (); for (Header header : response.getAllHeaders()) { headerMap.put(header.getName(), header.getValue()); } result.setHeaders(headerMap); } catch (Exception e) { e.printStackTrace(); } finally { // 关闭资源 if (null ! response) { try { response.close(); } catch (IOException e) { e.printStackTrace(); } } if (null ! httpClient) { try { httpClient.close(); } catch (IOException e) { e.printStackTrace(); } } } return result; } public Response sendJsonByDeleteReq(int connectTimeout, int connectionRequestTimeout, int socketTimeout) { CloseableHttpClient httpClient null; CloseableHttpResponse response null; Response result new Response(); try { // 通过址默认配置创建一个httpClient实例 if (temp 0) {//绕过SSL httpClient sslClient(); } else { httpClient HttpClients.createDefault(); } String query this.queryStr; this.afterQuery encodeQueryStr(query); // 创建httpGet远程连接实例 HttpDeleteWithBody delete; if (StringUtils.isNotEmpty(this.afterQuery)) { delete new HttpDeleteWithBody(this.url + "?" + this.afterQuery); } else { delete new HttpDeleteWithBody(this.url); } // 设置请求头信息,鉴权 SimpleDateFormat TIMEFORMATTER new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'"); Date eopDate new Date(); delete.setHeader("ContentType", this.contentType); delete.setHeader("ctyuneoprequestid", this.uuId); delete.setHeader("EopAuthorization", getSign(eopDate)); delete.setHeader("Eopdate", TIMEFORMATTER.format(eopDate)); if (this.headerMap ! null) { for (String key : this.headerMap.keySet()) { if (StringUtils.isNotEmpty(key)) { delete.setHeader(key, this.headerMap.get(key).toString()); } } } System.out.println("请求头部 "); for (Header header : delete.getAllHeaders()) { System.out.println(header.getName() + ":" + header.getValue()); } System.out.println(); HttpEntity httpEntity new StringEntity(body, Charset.forName("UTF8")); delete.setEntity(httpEntity); // 设置配置请求参数 RequestConfig requestConfig RequestConfig.custom().setConnectTimeout(connectTimeout)// 连接主机服务超时时间 .setConnectionRequestTimeout(connectionRequestTimeout)// 请求超时时间 .setSocketTimeout(socketTimeout)// 数据读取超时时间 .build(); // 为httpGet实例设置配置 delete.setConfig(requestConfig); // 执行get请求得到返回对象 response httpClient.execute(delete); // 通过返回对象获取返回数据 HttpEntity entity response.getEntity(); // 通过EntityUtils中的toString方法将结果转换为字符串 result.setBody(EntityUtils.toString(entity, "UTF8")); result.setStatusCode(response.getStatusLine().getStatusCode()); Map headerMap new HashMap (); for (Header header : response.getAllHeaders()) { headerMap.put(header.getName(), header.getValue()); } result.setHeaders(headerMap); } catch (Exception e) { e.printStackTrace(); } finally { // 关闭资源 if (null ! response) { try { response.close(); } catch (IOException e) { e.printStackTrace(); } } if (null ! httpClient) { try { httpClient.close(); } catch (IOException e) { e.printStackTrace(); } } } return result; } public Response doHead(int connectTimeout, int connectionRequestTimeout, int socketTimeout) { CloseableHttpClient httpClient null; CloseableHttpResponse response null; Response result new Response(); try { // 通过址默认配置创建一个httpClient实例 if (temp 0) {//绕过SSL httpClient sslClient(); } else { httpClient HttpClients.createDefault(); } String query this.queryStr; this.afterQuery encodeQueryStr(query); // 创建httpHead远程连接实例 HttpHead httpHead; if (StringUtils.isNotEmpty(this.afterQuery)) { httpHead new HttpHead(this.url + "?" + this.afterQuery); } else { httpHead new HttpHead(this.url); } // 设置请求头信息,鉴权 SimpleDateFormat TIMEFORMATTER new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'"); Date eopDate new Date(); httpHead.setHeader("ContentType", this.contentType); httpHead.setHeader("ctyuneoprequestid", this.uuId); httpHead.setHeader("EopAuthorization", getSign(eopDate)); httpHead.setHeader("Eopdate", TIMEFORMATTER.format(eopDate)); if (this.headerMap ! null) { for (String key : this.headerMap.keySet()) { if (StringUtils.isNotEmpty(key)) { httpHead.setHeader(key, this.headerMap.get(key).toString()); } } } System.out.println("请求头部 "); for (Header header : httpHead.getAllHeaders()) { System.out.println(header.getName() + ":" + header.getValue()); } System.out.println(); // 设置配置请求参数 RequestConfig requestConfig RequestConfig.custom().setConnectTimeout(connectTimeout)// 连接主机服务超时时间 .setConnectionRequestTimeout(connectionRequestTimeout)// 请求超时时间 .setSocketTimeout(socketTimeout)// 数据读取超时时间 .build(); // 为httpHead实例设置配置 httpHead.setConfig(requestConfig); // 执行head请求得到返回对象 response httpClient.execute(httpHead); // 通过返回对象获取返回数据 HttpEntity entity response.getEntity(); // 通过EntityUtils中的toString方法将结果转换为字符串 result.setBody(EntityUtils.toString(entity, "UTF8")); result.setStatusCode(response.getStatusLine().getStatusCode()); Map headerMap new HashMap (); for (Header header : response.getAllHeaders()) { headerMap.put(header.getName(), header.getValue()); } result.setHeaders(headerMap); } catch (Exception e) { e.printStackTrace(); } finally { // 关闭资源 if (null ! response) { try { response.close(); } catch (IOException e) { e.printStackTrace(); } } if (null ! httpClient) { try { httpClient.close(); } catch (IOException e) { e.printStackTrace(); } } } return result; } private String toHex(byte[] data) { StringBuilder sb new StringBuilder(data.length 2); byte[] var2 data; int var3 data.length; for (int var4 0; var4 2) { String encodeStr null; encodeStr URLEncoder.encode(s[1], "UTF8"); str s[0] + "" + encodeStr; afterQuery afterQuery + str; } else { String encodeStr ""; str s[0] + "" + encodeStr; afterQuery afterQuery + str; } } else { String[] s str.split(""); if (s.length > 2) { String encodeStr URLEncoder.encode(s[1], "UTF8"); str s[0] + "" + encodeStr; afterQuery afterQuery + "&" + str; } else { String encodeStr ""; str s[0] + "" + encodeStr; afterQuery afterQuery + "&" + str; } } } } } catch (Exception e) { e.printStackTrace(); } return afterQuery; } } 3. HexUtils.java java package com.ffcs.ebp.ebpsdk; public class HexUtils { private static final char[] HEXES { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' }; / byte数组 转换成 16进制小写字符串 / public static String bytes2Hex(byte[] bytes) { if (bytes null bytes.length 0) { return null; } StringBuilder hex new StringBuilder(); for (byte b : bytes) { hex.append(HEXES[(b >> 4) & 0x0F]); hex.append(HEXES[b & 0x0F]); } return hex.toString(); } / 16进制字符串 转换为对应的 byte数组 / public static byte[] hex2Bytes(String hex) { if (hex null hex.length() 0) { return null; } char[] hexChars hex.toCharArray(); byte[] bytes new byte[hexChars.length / 2]; // 如果 hex 中的字符不是偶数个, 则忽略最后一个 for (int i 0; i headerMap new HashMap<>(); // headerMap.put("queryMetricDataInfo", "{"regionId":"cnsz1","dim":"instanceid,98cdcc8a8e544788ab9cc94ccee429c7","filter":"average","from":"1658473040","to":"1658473040","metricName":"netbitRecv","namespace":"AGT.ECS","period":"1"},"platform":"3"}"); // headerMap.put("platform", "3"); // headerMap.put("consoleUrl", " // headerMap.put("UserAgent", "3333433"); // headerMap.put("XForwardedFor", "1231313"); // headerMap.put("regionId", "100054c0416811e9a6690242ac110002"); // headerMap.put("prodInstId","9dcaf0157c604100af79bdb8271527bc"); //请求地址 String url " //query参数(?后面拼接的参数。没有就不填) aaaa&bbbb String queryStr "regionID41f64827xxxxxxxxxffa3a5deb5d15d"; //body参数(没有就不填) String body ""; //APPID String ak "9f82cacd3f8235c66edfs5e899f098e6"; //appkey String sk "MlgzESz430hJgTzA4lkjuJvDMMLTqwBQRicVqV62VM"; String uuId UUID.randomUUID().toString(); //连接超时 int connectTimeout 35000; //连接请求超时 int connectionRequestTimeout 35000; //socket超时 int socketTimeout 60000; YunSign yunSign new YunSign(url, ak, sk, uuId, body, temp, contentType, queryStr, headerMap); Response response yunSign.toDo(method, connectTimeout, connectionRequestTimeout, socketTimeout); System.out.println("应答头部 "); for (Map.Entry entry : response.getHeaders().entrySet()) { System.out.println(entry.getKey().toString() + ":" + entry.getValue().toString()); } System.out.println(); System.out.println("请求结果 "); System.out.println(response.getBody()); } }
        来自:
        帮助文档
        对象存储 ZOS
        API参考
        如何调用API
        Java调用示例
      • 开源组件Web站点
        本章主要介绍开源组件Web站点 。 场景介绍 MRS集群默认在集群的Master节点或Core节点创建并托管了不同组件的Web站点,用户可以通过这些Web站点查看组件相关信息。 访问开源组件Web站点步骤: 1. 配置访问方式。 MRS提供如下访问开源组件Web站点的方式: 通过弹性公网IP访问:推荐使用该方式,为集群绑定弹性公网IP,简便易操作。 通过Windows弹性云主机访问:需要创建单独的ECS并进行相关配置。 创建连接MRS集群的SSH隧道并配置浏览器:当用户和MRS集群处于不同的网络中时可以使用该方式访问。 2. 访问站点。请参考下表的地址进行访问。 Web站点一览 说明 对于开启Kerberos认证的集群,admin用户不具备各组件的管理权限,如需正常访问各组件的Web UI界面,请提前创建具有对应组件管理权限的用户。 详见下表: 开源组件Web站点地址 集群类型 站点类型 站点地址 全部类型 MRS Manager 适用于所有版本集群 说明 1. 确保本地机器与MRS集群网络互通。 2. 远程登录Master2节点,执行“ifconfig”命令,系统回显中“eth0:wsom”表示MRS Manager浮动IP地址,请记录“inet”的实际参数值。如果在Master2节点无法查询到MRS Manager的浮动IP地址,请切换到Master1节点查询并记录。如果只有一个Master节点时,直接在该Master节点查询并记录。 MRS 3.x之前版本集群 具体请参见访问MRS Manager(MRS 2.x及之前版本)。 MRS 3.x及以后版本请参见访问FusionInsight Manager(MRS 3.x及之后版本)。 分析集群 HDFS NameNode MRS 3.x之前版本集群,在集群详情页选择“组件管理> HDFS > NameNode WebUI > NameNode (主)” MRS 3.x及以后版本集群,在Manager页面选择“集群>服务> HDFS > NameNode WebUI > NameNode ( 主机名称 ,主)” HBase HMaster MRS 3.x之前版本集群,在集群详情页选择“组件管理> HBase > HMaster WebUI > HMaster (主)” MRS 3.x及以后版本集群,在Manager页面选择“集群>服务> HBase > HMaster WebUI > HMaster ( 主机名称 ,主)” MapReduce JobHistoryServer MRS 3.x之前版本集群,在集群详情页选择“组件管理> Mapreduce > JobHistoryServer WebUI > JobHistoryServer” MRS 3.x及以后版本集群,在Manager页面选择“集群>服务> Mapreduce > JobHistoryServer WebUI > JobHistoryServer ( 主机名称 ,主)” YARN ResourceManager MRS 3.x之前版本集群,在集群详情页选择“组件管理> Yarn > ResourceManager WebUI > ResourceManager (主)” MRS 3.x及以后版本集群,在Manager页面选择“集群>服务> Yarn > ResourceManager WebUI > ResourceManager ( 主机名称 ,主)” Spark JobHistory MRS 3.x之前版本集群,在集群详情页选择“组件管理> Spark > Spark WebUI > JobHistory” MRS 3.x及以后版本集群,在Manager页面选择“集群>服务> Spark2x > Spark2x WebUI > JobHistory2x ( 主机名称 )” Hue MRS 3.x之前版本集群,在集群详情页选择“组件管理> Hue > Hue WebUI > Hue (主)” MRS 3.x及以后版本集群,在Manager页面选择“集群>服务> Hue > Hue WebUI > Hue (主机名称 ,主)” Loader页面是基于开放源代码Sqoop WebUI的图形化数据迁移管理工具,由Hue WebUI承载。 Tez MRS 3.x之前版本集群,在集群详情页选择“组件管理> Tez > Tez WebUI > TezUI” MRS 3.x及以后版本集群,在Manager页面选择“集群>服务> Tez > Tez WebUI > TezUI ( 主机名称 )” Presto MRS 3.x之前版本集群,在集群详情页选择“组件管理> Presto > Presto WebUI > Coordinator (主)” 在Manager页面选择“集群>服务> Presto > Coordinator WebUI > Coordinator(Coordinator)” Ranger MRS 3.x之前版本集群,在集群详情页选择“组件管理> Ranger > Ranger WebUI > RangerAdmin (主)” MRS 3.x及以后版本集群,在Manager页面选择“集群>服务> Ranger > Ranger WebUI > RangerAdmin” 流处理集群 Storm MRS 3.x之前版本集群,在集群详情页选择“组件管理> Storm > Storm WebUI > UI” 在Manager页面选择“集群>服务> Storm > Storm WebUI > UI (主机名称 )”
        来自:
        帮助文档
        翼MapReduce
        用户指南
        访问MRS集群上托管的开源组件Web页面
        开源组件Web站点
      • 云间高速相关术语解释
        什么是资源池互联专网? 资源池专网是中国电信建设的与公众互联网物理隔离的独立网络,用于连接全国天翼云资源池,为天翼云用户提供高可靠的跨域资源池之间的东西向高带宽能力。
        来自:
        帮助文档
        云间高速(尊享版)
        产品介绍
        云间高速相关术语解释
      • 监控Agent概览
        监控Agent简介 通过在主机上安装云监控Agent,为您提供主机的系统监控、进程监控等服务。 系统要求 目前只支持Linux操作系统和Windows操作系统。支持的系统如下: 操作系统 版本 Linux 天翼云提供的公共Linux镜像均支持 Windows 天翼云提供的公共Windows镜像均支持 在部分区域,对于使用标准公共版本镜像的服务器,可以在云主机详情页监控 单击“一键安装监控Agent”来实现一键安装新的监控。 安装位置 监控Agent在云主机上的安装位置如下: Linux:/usr/bin/telegraf Windows:C:Program Filesctyuntelegraftelegraf 端口说明 云主机监控Agent通过TCP协议访问远程服务器的 10063和10064 端口, 用于心跳检测与监控数据上报,以及用于查看配置和更改日志级别等。 性能说明 资源 性能说明 CPU 当监控插件稳定运行时,一般CPU的消耗小于1% 内存 当监控插件稳定运行时,一般内存的占用小于64M 插件安装包 64M 支持安装监控Agent的地区及Agent安装包下载路径 地区名称 Agent安装包下载路径 华北2 Linux: Windows: 西南2 Linux: Windows: 青岛20 Linux: Windows: 上海15 Linux: Windows: 南昌5 Linux: Windows: 华南2 Linux: Windows: 广州6 Linux: Windows: 西南1 Linux: Windows: 芜湖4 Linux: Windows: 贵阳42 Linux: Windows: 沈阳8 Linux: Windows: 杭州7 Linux: Windows: 北京9 Linux: Windows: 西安7 Linux: Windows: 西安5 Linux: Windows: 太原4 Linux: Windows: 郑州5 Linux: Windows: 常州69 Linux: Windows: 上海32 Linux: Windows: 武汉41 Linux: Windows: 华东1 Linux: Windows: 南宁23 Linux: Windows: 上海36 Linux: Windows: 上海7 Linux: Windows: 内蒙6 Linux: Windows: 北京5 Linux: Windows: 九江 Linux: Windows: 拉萨3 Linux: Windows: 杭州2 Linux: Windows: 长沙42 Linux: Windows: 中卫5 Linux: Windows: 石家庄20 Linux: Windows: 南京5 Linux: Windows: 晋中 Linux: Windows: 贵州3 Linux: Windows: 辽阳1 Linux: Windows: 福州25 Linux: Windows: 合肥2 Linux: Windows: 注意 除以上地区外,若需要下载监控Agent安装包,请参考云监控Agent管理。
        来自:
        帮助文档
        弹性云主机 ECS
        用户指南
        监控
        监控Agent概览
      • 操作系统安全
        提升操作系统访问安全性 使用密钥对登录实例 密钥对由公钥和私钥组成,是一种安全的身份认证方式,相较于传统账号密码登录,具备更高安全性与便捷性,为提高安全性,建议使用密钥对登录实例。 天翼云密钥对默认采用 RSA2048 位加解密算法,密钥对的安全强度远高于常规密码,能有效杜绝暴力破解风险,避免因密码泄露导致的实例被非法登录。将公钥配置在 Linux 实例后,用户可在本地或其他实例中,通过私钥直接登录目标实例,无需重复输入密码,对于批量管理多台 Linux 实例场景,密钥对登录能大幅提升运维效率。 配置建议:创建实例时可直接指定密钥对,或在实例创建后绑定密钥对;建议在 SSH 配置文件中禁用密码登录,仅支持密钥对登录,进一步强化登录安全。更多信息,请参见++密钥对使用场景介绍++ 避免敏感端口 0.0.0.0/0 授权 未对端口授权进行管理的情况下,云主机允许任意来源的访问,可能导致网络中的攻击者在未经授权的情况下,通过Linux操作系统22端口(用于SSH连接)或Windows操作系统的3389端口(用于RDP远程桌面服务)登录到操作系统中,对系统进行攻击。安全组是一种网络安全防护机制,用于防止未经授权的访问和保护计算机网络免受恶意攻击。它是一种虚拟防火墙,用于限制入向和出向网络流量。安全组工作在网络层和传输层,它通过检查数据包的源地址、目标地址、协议类型和端口号等信息来决定是否允许通过。更多信息,请参见++安全组概述++。 安全加固操作系统
        来自:
        帮助文档
        弹性云主机 ECS
        安全合规
        操作系统安全
      • AnythingLLM 协同 Ollama 启用
        进入控制台,远程登陆即将安装AnythingLLM的云主机。 二、AnythingLLM 服务部署( docker 方式) 1. 获取 AnythingLLM docker image 文件。 由于国内无法访问 docker hub 网站,您需要修改 docker 的服务配置文件,添加国内可访问的源,以便能够顺利拉取 AnythingLLM docker image 文件。操作步骤如下: 向 docker 配置文件中添加国内可访问的 docker 镜像源 重启 docker 服务 拉取 AnythingLLM docker image plaintext Docker 守护进程( daemon )的配置文件。添加国内可访问镜像源。 sudo vi /etc/docker/daemon.json 重启 docker 服务 sudo systemctl restart docker 确认 docker 服务正常 sudo systemctl status docker 拉取 anythingllm 镜像 docker pull mintplexlabs/anythingllm daemon.json 文件添加的内容为: plaintext { "registrymirrors": [" " " } daemon.json 文件如下,仅供参考: 2. 启动 AnythingLLM 服务。 首先查看下载的 AnythingLLM 容器镜像的 tag 启动 AnythingLLM 服务 查看 AnythingLLM 服务状态 plaintext 查看当前的容器镜像列表 docker image list 启动 AnythingLLM 服务,下述 PROT 参数需要与第一部分开放的端口相对应 docker run d e PORT3001 e OLLAMABASEURL e ENABLESIGNUPtrue e ENABLEOPENAIAPIFalse addhosthost.docker.internal:hostgateway nethost v anythingLLM:/app/backend/data name anythingLLM restart always mintplexlabs/anythingllm:latest 查看 AnythingLLM 服务状态 docker ps a
        来自:
      • 1
      • ...
      • 37
      • 38
      • 39
      • 40
      • 41
      • ...
      • 415
      跳转至
      推荐热词
      天翼云运维管理审计系统天翼云云服务平台云服务备份云日志服务应用运维管理云手机云电脑天翼云云hbase数据库电信云大数据saas服务电信云大数据paas服务轻量型云主机天翼云客户服务电话应用编排服务天翼云云安全解决方案云服务总线CSB天翼云服务器配置天翼云联邦学习产品天翼云云安全天翼云企业上云解决方案天翼云产品天翼云视频云存储

      天翼云最新活动

      安全隔离版OpenClaw

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

      青云志云端助力计划

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

      云上钜惠

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

      中小企业服务商合作专区

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

      出海产品促销专区

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

      天翼云奖励推广计划

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

      产品推荐

      弹性云主机 ECS

      物理机 DPS

      镜像服务 IMS

      轻量型云主机

      弹性高性能计算 E-HPC

      训推服务

      一站式智算服务平台

      人脸检测

      人脸实名认证

      推荐文档

      应用用户管理

      术语解释

      重启实例

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