华为云用户手册

  • 响应示例 状态码: 200 成功响应示例 Http Status Code: 200 { "graphs": [ { "graph_name": "movieee", "idType": "fixedLengthString", "idLength": 20, "averageImportRate": 0.0 }, { "graph_name": "ldbc", "idType": "fixedLengthString", "idLength": 20, "averageImportRate": 0.0 } ], "result": "success" } 状态码: 400 失败响应示例 Http Status Code: 400 { "result": "failed" }
  • 请求示例 批量添加边,边的起点为46,边的终点分别为39和38,边的标签为rate。 POST http://{SERVER_URL}/ges/v1.0/{project_id}/graphs/{graph_name}/edges/action?action_id=batch-add { "parallelEdge": { "action": "override", "ignoreLabel": false, "targetProperties": [ { "label": "rate", "properties": [ "Datetime" ] }, { "label": "superclassOf", "properties": [ "popularity" ] } ] }, "createNotExists": true, "edges": [ { "source": "46", "target": "39", "label": "rate", "properties": { "Rating": [ 5 ], "Datetime": [ "2018-01-01 20:30:05" ] } }, { "source": "46", "target": "39", "label": "rate", "properties": { "Rating": [ 4 ], "Datetime": [ "2018-01-01 20:30:05" ] } } ] } SERVER_URL:图的访问地址,取值请参考业务面API使用限制。 样例中,若假设点666和777不在原图中,则创建666和777两个点,且label为默认值,之后再添加边。
  • 响应示例 状态码: 200 成功响应示例 Http Status Code: 200 { "result":"success", "data": { "edges": [ { "index": "7", "source": "46", "target": "39" }, { "index": "0", "source": "46", "target": "38" } ] } } 状态码: 400 失败响应示例 Http Status Code: 400 { "errorMessage":"edge source vertex [Lily] does not exist", "errorCode":"GES.8000" }
  • 响应示例 状态码: 200 成功响应示例 Http Status Code: 200 { "jobId": "b4f2e9a0-0439-4edd-a3ad-199bb523b613" } 状态码: 400 失败响应示例 Http Status Code: 400 { "errorCode": "GES.8301", "errorMessage": "Graph [10001-movie] does not exist, please check project_id and graph_name." }
  • 响应参数 表5 响应Body参数说明 参数 类型 说明 errorMessage String 系统提示信息。 执行成功时,字段可能为空。 执行失败时,用于显示错误信息。 errorCode String 系统提示信息。 执行成功时,字段可能为空。 执行失败时,用于显示错误码。 jobId String 执行该异步任务的jobId。 可以查询jobId查看任务执行状态、获取返回结果,详情参考Job管理API。
  • 请求示例 进行导出图操作,图的导出OBS路径为demo_movie/,导出边数据集名称为set_edge,导出点数据集名称为set_vertex,导出元数据文件名为set_schema.xml POST http://{SERVER_URL}/ges/v1.0/{project_id}/graphs/{graph_name}/action?action_id=export-graph { "graphExportPath": "demo_movie/", "edgeSetName": "set_edge", "vertexSetName": "set_vertex", "schemaName": "set_schema.xml", "paginate":{ "numThread":8, "rowCountPerFile":1000000 }, "obsParameters": { "accessKey": "xxxxxx", "secretKey": "xxxxxx" } }
  • 请求参数 表2 Body参数说明 参数 是否必选 类型 说明 graphExportPath 是 String 图的导出OBS路径。 edgeSetName 是 String 导出边数据集名称。 vertexSetName 是 String 导出点数据集名称。 schemaName 是 String 导出元数据文件名。 paginate 否 Object 分页相关参数,详情请参见paginate参数说明。 obsParameters 是 String Obs相关参数,详情请参见obsParameters参数说明。 accessKey 是 String 用户的accessKey。 secretKey 是 String 用户的secretKey。 表3 paginate参数说明 参数 是否必选 类型 说明 rowCountPerFile 否 Integer 按页导出时每个文件的最大行数,默认值为1000000。 numThread 否 Integer 按页导出时的并行线程数,默认为8 ,最大不超过内核数。 maxSizePerFile 否 Integer 按页导出时每个文件大小的最大值,单位是byte,默认不超过导入时最大文件约束。 表4 obsParameters参数说明 参数 是否必选 类型 说明 accessKey 是 string ak值。 secretKey 是 string sk值。
  • 响应参数 表2 响应Body参数说明 参数 类型 说明 errorMessage String 系统提示信息。 执行成功时,字段可能为空。 执行失败时,用于显示错误信息。 errorCode String 系统提示信息。 执行成功时,字段可能为空。 执行失败时,用于显示错误码。 jobId String 执行该异步任务的jobId。 可以查询jobId查看任务执行状态、获取返回结果,详情参考Job管理API。
  • 响应示例 状态码: 200 成功响应示例 Http Status Code: 200 { "jobId": "3-f78ec641-ed66-4983-bf93-7f9b3a716c780000000019090" } 状态码: 400 失败响应示例 Http Status Code: 400 { "errorMessage": "Graph [10001-movie1006] does not exist, please check project_id and graph_name.", "errorCode": "GES.8301" }
  • 请求示例 指定起始节点id搜索周围与之相关联的点,算法名称为temporal_paths,动态分析的开始时间为1646092800,结束时间为1646170716,起点id为Person00014。 POST http://{SERVER_URL}/ges/v1.0/{project_id}/graphs/{graph_name}/dynamicgraphs/action?action_id=execute-analysis { "algorithmName":"temporal_paths", "dynamicRange":{ "start":1646092800, "end":1646170716, "time_props": {"stime":"startTime","etime":"endtime"} }, "parameters":{ "source":" Person00014", "targets":"Person00055,Person00058,Person00052,Person00061,Person00060,Place00032,Place00016,Place00026,Place00015,Place00043", "strategy":"shortest", "directed":true } }
  • 响应参数 表6 响应参数说明 参数 是否必选 类型 说明 errorMessage 否 String 系统提示信息,执行成功时,字段可能为空。执行失败时,用于显示错误信息。 errorCode 否 String 系统提示信息,执行成功时,字段可能为空。执行失败时,用于显示错误码。 jobId 否 String 执行算法任务ID。请求失败时,字段为空。 说明: 可以查询jobId查看任务执行状态、获取返回结果,详情参考Job管理API。 jobType 否 Integer 任务类型。请求失败时,字段为空。
  • 请求参数 表2 Body参数说明 参数 是否必选 类型 说明 algorithmName 是 String 算法名字。 parameters 是 parameters Object 算法参数。详情请参考各算法参数描述。 dynamicRange 是 dynamicRange Object 动态分析时间参数。 表3 parameters 参数 是否必选 类型 说明 source 是 String 起点id。 targets 是 String 终点id集合。csv格式,ID之间以英文逗号分隔,例如:“Alice,Nana”。个数不大于100000,默认值为1000。 directed 否 Boolean 是否考虑边的方向,取值为true 或false,默认值为false。 k 否 Integer 最大深度,取值范围在1-100,包括1和100,默认值为3。 strategy 否 String 运行的算法策略。取值为:shortest,foremost,fastest。 (注:fastest暂不支持) 默认值为shortest。 shortest:运行shortest temporal paths算法,返回距离最短的时序路径 foremost:运行foremost temporal paths算法,返回尽可能早的到达目标节点的时序路径 fastest:运行fastest temporal paths算法,返回耗费时间最短的时序路径 表4 dynamicRange 参数 是否必选 类型 说明 start 是 Date/ Integer 动态分析起始时间。 end 是 Date/ Integer 动态分析终止时间 。 time_props 是 time_props Object 动态分析的时间属性定义。 表5 time_props 参数 是否必选 类型 说明 stime 是 String 开始时间属性名称。 etime 是 String 结束时间属性名称 。
  • 响应示例 状态码: 200 成功响应示例 Http Status Code: 200 { "data": { "vertices": [ { "id": "0", "labels": [ "movie" ], "properties": { "movie": { "movieid": [ 0 ], "title": [ "American Beauty (1999)" ], "genres": [ "Comedy|Drama" ] } } }, { "id": "51", "labels": [ "user" ], "properties": { "user": { "userid": [ 5 ], "gender": [ "F" ], "age": [ "56+" ], "occupation": [ "homemaker" ], "Zip-code": [ "46911" ] } } } ] }, "result": "success" } 状态码: 400 失败响应示例 Http Status Code: 400 { "errorMessage": " Bad Request, parameter vertices cannot be null", "errorCode": "GES.8214" }
  • 响应参数 表3 响应Body参数 参数 类型 说明 errorMessage String 系统提示信息。 执行成功时,字段可能为空。 执行失败时,用于显示错误信息。 errorCode String 系统提示信息。 执行成功时,字段可能为空。 执行失败时,用于显示错误码。 data Object 查询成功时包含data字段,data字段中包含vertices查询结果。 result String 查询结果。成功时值为success,失败时值为failed。
  • 响应示例 状态码: 200 OK { "backupCount": 3, "backupList": [ { "id": "ada3e720-ab87-48cb-bff7-3ec5ae1a9652", "name": "ges060803_nodelete-20210608135513", "backupMethod": "manual", "graphId": "4c5f882d-a813-4d78-a8e3-6d3212ddd121", "graph_name": "ges060803_nodelete", "graphStatus": "200", "graphSizeTypeIndex": "1", "dataStoreVersion": "2.2.21", "arch": "x86_64", "status": "success", "startTimestamp": 1623160513000, "startTime": "2021-06-08T13:55:13", "endTimestamp": 1623160568000, "endTime": "2021-06-08T13:56:08", "size": 1, "duration": 54, "encrypted": false }, { "id": "7ed3f51d-816d-4651-9129-fe21b64b5c91", "name": "ges060803_nodelete_20210609203323_auto", "backupMethod": "auto", "graphId": "4c5f882d-a813-4d78-a8e3-6d3212ddd121", "graph_name": "ges060803_nodelete", "graphStatus": "200", "graphSizeTypeIndex": "1", "dataStoreVersion": "2.2.21", "arch": "x86_64", "status": "success", "startTimestamp": 1623242004000, "startTime": "2021-06-09T12:33:24", "endTimestamp": 1623242004000, "endTime": "2021-06-09T12:33:24", "size": 1, "duration": 0, "encrypted": false }, { "id": "604bfb46-04dd-45fc-a9ae-df24a0705b9d", "name": "ges060802_nodelete-20210608135523", "backupMethod": "manual", "graphId": "9b9a05c2-0cdb-41ac-b55f-93caffb0519a", "graph_name": "ges060802_nodelete", "graphStatus": "400", "graphSizeTypeIndex": "0", "dataStoreVersion": "2.2.23", "arch": "x86_64", "status": "success", "startTimestamp": 1623160524000, "startTime": "2021-06-08T13:55:24", "endTimestamp": 1623160577000, "endTime": "2021-06-08T13:56:17", "size": 1, "duration": 53, "encrypted": false } ] } 状态码: 400 Bad Request { "errorCode" : "GES.7006", "errorMessage" : "The underlying graph engine has internal error." }
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 errorMessage String 系统提示信息。 执行成功时,字段可能为空。 执行失败时,用于显示错误信息。 errorCode String 系统提示信息。 执行成功时,字段可能为空。 执行失败时,用于显示错误码。 backupCount Integer 备份总个数。请求失败时,该字段为空。 backupList Array of backup objects 当前Project ID下的所有图的备份列表。请求失败时,该字段为空。 表5 backup 参数 参数类型 描述 id String 备份ID。 name String 备份名称。 backupMethod String 备份方法,取值为auto或manual。 graphId String 备份关联的图ID。 graph_name String 备份关联的图Name。 graphStatus String 备份关联的图状态。 graphSizeTypeIndex String 备份关联的图规格。 dataStoreVersion String 备份关联的图版本。 arch String 备份关联的图CPU架构。 status String 备份状态。 backing_up:备份中 success:备份成功 failed:备份失败 startTimestamp Long 备份开始时间戳。 startTime String 备份时间。 endTimestamp Long 备份结束时间戳。 endTime String 备份时间。 size Long 备份文件大小,单位为MB。 duration Long 备份时间,单位为秒。 encrypted Boolean 是否加密。true表示加密,false表示不加密,默认值为false。
  • 响应示例 状态码: 200 OK { "schemaCount": 1, "schemaList" : [ { "id" : "ff7dddc4-6402-43d7-9aed-c5ec677b47fa", "name" : "schema_demo", "description" : "", "status" : "200", "metadataPath" : "ges-graphs/demo_movie/schema.xml", "startTime" : "2018-07-23T02:59:41", "lastUpdateTime" : "2018-07-23T02:59:41" } ] } 状态码: 500 Internal Server Error { "errorCode" : "GES.7006", "errorMessage" : "The underlying graph engine has internal error." }
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 errorMessage String 系统提示信息。 执行成功时,字段可能为空。 执行失败时,用于显示错误信息。 errorCode String 系统提示信息。 执行成功时,字段可能为空。 执行失败时,用于显示错误码。 schemaCount Integer 元数据返回个数。请求失败时,该字段为空。 schemaList Array of metadata objects 当前project_id下的所有元数据列表。请求失败时,该字段为空。 表5 metadata 参数 参数类型 描述 id String 元数据 ID。 name String 元数据名称。 description String 元数据描述。 status String 元数据是否可用。 metadataPath String 元数据对应路径。 startTime String 元数据的创建时间。 lastUpdateTime String 元数据的最后更新时间。
  • URI GET /v1.0/{project_id}/graphs/metadatas 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID。获取方法请参见获取项目ID。 表2 Query参数 参数 是否必选 参数类型 描述 limit 否 Integer 每页资源数量的最大值,默认为10。 offset 否 Integer 本次请求的起始位置,默认为0。
  • 操作系统及浏览器有什么要求? 华为云会议管理平台 推荐使用的浏览器版本: Internet Explorer 11及以上版本 Firefox 41及以上版本 Chrome 46及以上版本 硬终端Web界面 可在硬终端Web界面首页查看推荐使用的浏览器版本。 客户端 客户端目前支持的操作系统版本,如表1所示。 表1 客户端对操作系统的要求 类型 要求 桌面客户端 Windows 7及以上(32位或64位),MacOS 10.12及以上版本 移动客户端 Android 6.0及以上,iOS 11.0及以上版本 父主题: 产品规格
  • CloudLink Board 使用激活码激活后,在线路状态显示“A CS 已连接,SIP未使用”? 可以从以下几个方面排查: 版本问题,CloudLink Board 版本不能低于20.0.1.SPC4,请升级到最新版本。 查看华为云会议管理平台序列号(SN)添加是否正确。 网络中对IP地址做了限制 或 IP地址冲突,切换个IP地址后查看系统状态是否正常。 DNS配置问题,导致配置无法下发,将终端修改DNS为114.114.114.114。 父主题: 硬终端配置故障
  • 弹性公网IP、私有IP和虚拟IP之间有何区别? 云上不同IP地址实现的功能不同,图1展示了IP地址架构图,关于IP的详细介绍请参见表1。 图1 IP地址架构图 表1 不同IP地址功能说明 IP地址分类 IP地址说明 示例 私有IP 您在VPC子网内创建弹性云服务器时,系统会基于子网内的可用IP地址,给弹性云服务器分配私有IP地址,私有IP地址主要用于云内网络通信,不能访问Internet。 ECS-A-01的私有IP地址为172.16.0.84 ECS-B-01的私有IP地址为172.16.1.12 虚拟IP 虚拟IP是一个未分配给真实弹性云服务器网卡的IP地址,可同时绑定至多台弹性云服务器上。虚拟IP结合keepalived,可以在主弹性云服务器发生故障无法对外提供服务时,动态将虚拟IP切换到备弹性云服务器,继续对外提供服务,以此达到高可用性HA(High Availability)的目的。 虚拟IP的更多介绍请参见虚拟IP简介,高可用集群搭建方法请参见搭建Keepalived Nginx高可用Web集群。 虚拟IP(172.16.0.2)同时绑定至ECS-A-01和ECS-A-02,结合keepalived可实现ECS-A-01和ECS-A-02的主备倒换。 弹性公网IP 弹性公网IP是云上资源访问Internet使用的IP地址。 在虚拟IP场景,您可以将弹性公网IP绑定至虚拟IP,实现虚拟IP后端的弹性云服务器访问Internet。 您可以将弹性公网IP直接绑定至弹性云服务器上,实现弹性云服务器访问Internet,一个弹性公网IP只能绑定至一台弹性云服务器。 弹性公网IP的更多介绍请参见弹性公网IP简介。 将EIP(122.9.9.85)绑定至虚拟IP(172.16.0.2),实现ECS-A-01和ECS-A-02访问Internet。 将EIP(122.9.9.87)绑定至ECS-B-01,实现ECS-B-01访问Internet。 父主题: 产品咨询类
  • 如何通过扩展网卡绑定的弹性公网IP访问公网? 弹性公网IP绑定扩展网卡后,进入弹性云服务器,执行route命令查询路由。 route命令如果不清楚可以使用route --help。 图1 查看路由信息 执行ifconfig命令查看网卡信息。 图2 查看网卡信息 配置默认通过扩展网卡访问公网。 执行如下命令,删除主网卡默认路由。 route del -net 0.0.0.0 gw 192.168.11.1 dev eth0 参数说明:192.168.11.1是网卡所在子网的网关,可以通过管理控制台,在子网的“基本信息”页签内查看网关地址。 此操作会导致虚拟机流量中断,请谨慎操作,推荐您参考步骤4配置。 执行如下命令,配置扩展网卡默认路由。 route add default gw 192.168.17.1 按照访问的目标地址配置扩展网卡访问。 配置通过扩展网卡访问某一网段(xx.xx.0.0/16,该网段请按实际情况设置): route add -net xx.xx.0.0 netmask 255.255.0.0 gw 192.168.17.1 父主题: 弹性公网IP绑定/解绑类
  • 修订记录 发布日期 修改说明 2024-01-10 文档更新如下: 新增解绑定弹性公网IP和释放弹性公网IP有何区别?。 2023-08-22 文档更新如下: 新增什么是传统型95计费?。 2023-08-02 文档更新如下: 如何切换计费方式中的“按需计费”和“包年/包月计费”?,增加包年包月即时转按需计费(按带宽计费)的步骤。 2023-07-24 文档更新如下: 新增购买按需资源为什么会冻结保证金?。 2023-07-11 文档更新如下: 新增弹性公网IP和全域弹性公网IP有什么区别?。 2023-07-06 文档更新如下: 新增弹性公网IP因公网链路绕行导致TTL耗尽,网络Ping不通?。 2023-04-28 文档更新如下: 如何切换计费方式中的“按需计费”和“包年/包月计费”?,增加按需计费(按带宽计费)和按需计费(按流量计费)相互转换的步骤。 2023-04-11 文档更新如下: 什么是入云带宽和出云带宽?,修改公网带宽限速规则描述。 2022-11-10 文档更新如下: 什么是增强型95计费?,添加到价格计算器详情页的链接作为价格参考。 2022-10-30 文档更新如下: 新增服务器下载速度慢怎么办?。
  • 场景三:为NAT网关解绑已有EIP,并绑定新的EIP 申请新的弹性公网IP,请参考2。 当您已有需要绑定的EIP时,请忽略此步骤。 修改SNAT规则。 修改SNAT规则请参考修改SNAT规则,在弹性公网IP列表中勾选新申请的弹性公网IP,取消已有弹性公网IP。 修改DNAT规则。 修改DNAT规则请参考修改DNAT规则,在“弹性公网IP”中重新选择为新申请的弹性公网IP。 释放已被替换的EIP,请参考4。 当已被解绑的EIP不再使用时,您可以释放EIP。解绑后如果不及时释放该弹性公网IP,会产生弹性公网IP保有费。
  • 解绑定弹性公网IP和释放弹性公网IP有何区别? 解绑定弹性公网IP和释放弹性公网IP的区别可以参考表1: 表1 解绑定弹性公网IP和释放弹性公网IP的区别 对比维度 解绑定弹性公网IP 释放弹性公网IP 应用场景 当您的实例无需继续使用弹性公网IP时,您可以解绑弹性公网IP。 当您想要将弹性公网IP绑定至其他实例时,请先从原有实例上解绑。 当您无需继续使用弹性公网IP时,您可以释放弹性公网IP。 按需计费EIP的费用 解绑实例后的按需计费(按带宽计费)EIP,收取弹性公网IP保有费和带宽费。 解绑实例后的按需计费(按流量计费)EIP,收取弹性公网IP保有费。 解绑实例后的按需计费(加入共享带宽)EIP,收取弹性公网IP保有费和共享带宽费。 释放按需计费(按带宽计费)EIP后,停止收取带宽费和弹性公网IP保有费。 释放按需计费(按流量计费)EIP后,停止收取流量费和弹性公网IP保有费。 释放按需计费(加入共享带宽)EIP后,停止收取弹性公网IP保有费。删除共享带宽,停止收取带宽费。 包年/包月的EIP费用按订单的购买周期计费。对EIP执行的任何操作,均不影响包年/包月计费情况。 父主题: 弹性公网IP绑定/解绑类
  • 配置示例 配置场景1:某客户的域名“www.example.com”配置了 CDN加速 ,缓存规则配置见下图。 配置结果:网站首页不缓存,所有页面均不会忽略URL参数。 配置场景2:设置某个类型的文件不缓存 某客户的域名“www.example.com”配置了CDN加速,由于业务需求,需要对“.do”格式的文件不缓存,同时所有文件都忽略URL参数。 需要在CDN控制台增加一条文件名后缀为“.do”的缓存规则,缓存过期时间设置为“0”。 新规则仅对后续资源缓存生效,新规则配置完成后,建议您刷新“.do”文件所在的URL或者目录,新规则才可以对所有“.do”文件生效。 某客户配置了CDN加速,发现登录界面无限循环,无法登录,停用CDN加速后,可以正常登录。 这是因为CDN节点缓存了登录界面导致的,需要在控制台增加一条针对登录界面的缓存规则,缓存过期时间设置为“0”。以华为云控制台登录界面为例,华为云控制台的登录页面为“https://auth.huaweicloud.com/authui/login.html#/login”,在控制台增加一条全路径:/authui/login.html#/login,缓存过期时间为“0”的缓存规则。 配置场景3:某客户加速域名www.example.com设置了如下图的缓存规则,不知道哪一个规则生效。 用户访问www.example.com/test/cdn.jpg,虽然所有文件、文件名后缀、全路径三条规则都匹配到了,但是由于全路径的优先级为8,在三条规则里优先级最高,所以系统最终匹配全路径/test/*.jpg这条规则。
  • 背景信息 CDN节点的缓存策略遵循HTTP标准协议,通过HTTP响应头中的Cache-control: max-age的字段来设置CDN节点上数据的缓存时间。添加缓存规则让CDN用户可以对指定的业务做定制化的数据缓存时间管理。合理的配置缓存时间,能够有效的提升命中率,降低回源率,节省用户的带宽。 当用户向CDN节点请求数据时,CDN节点会判断缓存数据是否过期。如果缓存数据未过期,则直接将缓存数据返回给用户,提升获取速度;否则,CDN节点就会向源站发出回源请求,从源站请求最新数据,更新本地缓存,并将最新数据返回给用户。
  • 注意事项 每个域名最多可添加60条缓存规则。 CDN缓存过期时间会对“回源率”产生直接的影响。如果CDN缓存过期时间过短,CDN节点上的数据会经常失效,导致频繁回源,增加了源站的负载,同时也增大了访问延时;如果CDN缓存过期时间过长,会带来数据更新时间慢的问题。 缓存过期时间设置为0时,该文件的所有请求都将回源,可能存在加速业务中断的风险。 节点缓存的资源,可能会由于热度较低而被提前从CDN节点删除。 如果您修改了缓存规则,请注意: 新的规则仅对后面缓存的资源生效,已经缓存的资源需要等缓存过期后,再次缓存才会遵循新的缓存规则。 如果您想要新的规则对所有资源(包括节点已缓存资源)立即生效,请在修改缓存规则后执行缓存刷新操作。
  • 配置示例 示例1:加速域名www.example.com的回源URL改写配置如下图所示。 原始请求:https://www.example.com/test/a.txt 改写后的回源请求:https://www.example.com/test/b.txt 示例2:加速域名www.example.com的回源URL改写配置如下图所示。 原始请求:https://www.example.com/test/aaa/bbb.mp4 改写后的回源请求:https://www.example.com/newtest/aaa/bbb.mp4 示例3:加速域名www.example.com的回源URL改写配置如下图所示。 原始请求:https://www.example.com/test/aaa/bbb.txt 改写后的回源请求:https://www.example.com/new.jpg 示例4:加速域名www.example.com的回源URL改写配置如下图所示。 原始请求:https://www.example.com/123.html?id=3 改写后的回源请求:https://www.example.com/thread0/123.html?id=3
共100000条