• mobileoffice子库迁移到GaussDB
    问题现象:需要适配GaussDB,当前mobileoffice子库需要迁移到GaussDB  解决方案:由于环境中没有安装UGO和DRS,需要手工迁移数据。当前已经在提供的服务器环境中完成了数据迁移   
  • 数据库状态不正常,有主备切换,节点down,修复不成功
    发现操作系统为麒麟V10sp3,当前数据库推荐操作系统版本为v10Sp1/sp2,联系过伙伴,备份了数据库数据后,重装了操作,并重装数据库,还原备份的记录,数据库状态恢复正常。
  • 当前结算系统在进行适配GuassDB的改造工作,在使用中需要知道数据库编码查询方法
    切换到omm用户下面:source gauss_env_file用root用户登入gsql,执行以下查询:select datname,pg_encoding_to_char(encoding),datcompatibility from pg_database where datname='要查询的库名'; 
  • getclobval函数使用报错
    确认是兼容性问题,getclobval与oracle有差异,gaussdb上与oracle参数不一致,gaussdb上需要增加入参。伙伴侧根据实际需求修改sql,增加入参后,sql执行正常。
  • 如何创建基于PG的类型并字符编码为UTF8的数据库
     问题现象:SELECT pg_encoding_to_char(encoding) FROM pg_database WHERE datname = '库名';执行上面问题时在Postgres库输出的结果,如果要在GaussDB里面创建对应的数据库时,写入数据发现与Postgres里面相同长度的字符类型时,写入报长度不够 解决方案:在指定encoding='UTF8' dbcompatibility='PG'; 相关文档:GaussDB 数据库字符编码与兼容模式https://bbs.huaweicloud.com/blogs/440703  
  • 请问可以使用企业的华为云账号统一购买华为云认证考试券,然后再下发给需要考试的员工吗
    问题现象:员工使用自己的华为云账号缴纳华为云证书考试费用的时候提供不了企业抬头发票了,只有组织和个人的发票选项 解决方案:可以用企业主账号进行批量购买,批量购买之后返回的是认证券的兑换码,将兑换码给到个人账号兑换使用即可。   
  • 请求激活授权码报错:cacl aksk signature fail:signature expired.
    问题现象:请求激活授权码报错:cacl aksk signature fail:signature expired.期待您的帮助,谢谢 解决方案:根据提示信息signature expired判断是signature过期了,请求头中s-sdk-date需要使用GMT时间  
  • C++或C的IDE没有反汇编视图
    问题现象: 查看了所有菜单,在中断调试时,试图查找反汇编视图,没有找到相关菜单,希望能增加反汇编视图,或将相关菜单放到显著位置  解决方案: CodeArts IDE 已具备反汇编能力C、C++用户可通过以下三步生成汇编语言文件确保需要生成的c/c++文件代码可正常运行且可编译通过(无报错)在终端中使用命令生成可运行文件.exe,参考命令:g++ -o main.exe main.cgcc -S main.c -o main.s命令生成汇编语言文件Java用户可直接打开编译后的class文件如果需要调试反汇编文件可前往插件市场自行下载反编译扩展插件  
  • CCE控制台无法打开命令行工具,提示报错:No permissions to request the method because token is restricted
    问题现象: 打开CCE控制台命令行工具,弹出报错,No permissions to request the method because token is restricted  解决方案: 用户账号欠费,解决欠费问题即可   
  • 身份证实名已更改,需要变更证书名字
    问题现象: 身份证实名已更改,需要协助变更下已经考过的证书名字 解决方案: 证书名字是根据您考试的时候当前账号的实名认证来下发的,后期无法修改  
  • 调用trainingdata接口,使用postman正常,使用springboot代码显示认证错误
    问题现象: 实际产线为局域网,AI模型由供应商提供.需要把供应商部署在内部的服务器发出的请求,通过部署在公司对外服务器上的SpringBoot项目转发到华为云服务器转发PUT请求https://hzdcim.obs.cn-south-1.myhuaweicloud.com/trainingdata时显示Authorization签名认证失败403​调用本地接口失败​本地接口如下​ApiController:@PostMapping("/put-api")@ApiOperation(value = "put中转API" ,notes = "put中转API")public String putApi(@RequestParam("url") String url, @RequestParam("headerAuthorization") String headerAuthorization, @RequestParam("headerContentType") String headerContentType, @RequestParam("headerCanonicalizedResource") String headerCanonicalizedResource, @RequestParam("headerDate") String headerDate, @RequestParam("file") MultipartFile multipartFile) { if(url.matches(ApiConstant.MODEL_ARTS_TRANSFER_HW_REGEX) || url.matches(ApiConstant.MODEL_ARTS_TRANSFER_MY_HW_REGEX)) { // 对apiUrl进行HTML编码 String encodedApiUrl = StringEscapeUtils.escapeHtml4(url); // 使用编码后的URL return apiService.putApi(encodedApiUrl,headerAuthorization,headerContentType,headerCanonicalizedResource,headerDate,multipartFile); }else { return "URL不符合规则"; } }apiService:import org.springframework.http.*;import org.springframework.http.*;import org.springframework.util.LinkedMultiValueMap;import org.springframework.web.client.RestTemplate;import org.springframework.web.multipart.MultipartFile;public String putApi(String url,String headerAuthorization,String headerContentType, String headerCanonicalizedResource,String headerDate, MultipartFile multipartFile) { HttpHeaders headers = new HttpHeaders(); if ("multipart/form-data".equals(headerContentType)) { headers.setContentType(MediaType.MULTIPART_FORM_DATA); } // 设置签名相关的请求头 headerAuthorization = StringEscapeUtils.escapeHtml4(headerAuthorization); headers.add("Authorization", headerAuthorization); headers.add("Date", headerDate); headers.add("CanonicalizedResource", headerCanonicalizedResource); LinkedMultiValueMap<String, Object> body = new LinkedMultiValueMap<>(); try { body.add("file", new MultipartFileResource(multipartFile)); } catch (IOException e) { e.printStackTrace(); return "File processing error: " + e.getMessage(); } HttpEntity<LinkedMultiValueMap<String, Object>> entity = new HttpEntity<>(body, headers); RestTemplate restTemplate = new RestTemplate(); ResponseEntity<String> responseEntity = restTemplate.exchange( url, HttpMethod.PUT, entity, String.class ); // 返回响应的状态码 return String.valueOf(responseEntity.getStatusCode()); }​报错如下​  解决方案: 根据您的描述,您在尝试将内部服务器的请求通过部署在公司对外服务器上的SpringBoot项目转发到华为云OBS服务时遇到了问题,具体表现为PUT请求在转发时出现“Authorization签名认证失败”的错误,返回状态码403。下面将针对这个问题进行分析,并提供可能的解决方案。1. 问题定位首先,根据您提供的信息,PUT请求在通过Postman直接调用华为云OBS服务时是成功的,但通过SpringBoot项目转发时失败。这表明问题可能出在请求转发的过程中,特别是与请求头相关的部分,因为OBS服务的授权签名是基于请求头中的信息生成的。2. 可能的原因分析请求头信息丢失或修改:在SpringBoot项目中转发请求时,可能由于代码逻辑问题导致某些关键的请求头(如Authorization、Content-Type等)丢失或被修改。时间戳不一致:OBS服务的授权签名依赖于请求的时间戳,如果内部服务器与华为云服务器之间的时间存在较大偏差,可能会导致签名验证失败。签名算法或参数错误:如果在SpringBoot项目中手动构建了签名,可能会因为算法实现错误或参数设置不正确导致签名验证失败。3. 解决方案3.1 检查请求头信息确保在SpringBoot项目中转发请求时,所有关键的请求头信息(特别是Authorization、Content-Type等)都被正确地传递到华为云OBS服务。可以通过以下代码示例来确保这一点:@RestControllerpublic class RequestForwardController { @Autowired private RestTemplate restTemplate; @PostMapping("/forward") public ResponseEntity<String> forwardRequest(@RequestBody String body, HttpServletRequest request) { // 构建请求头 HttpHeaders headers = new HttpHeaders(); Enumeration<String> headerNames = request.getHeaderNames(); while (headerNames.hasMoreElements()) { String headerName = headerNames.nextElement(); String headerValue = request.getHeader(headerName); headers.add(headerName, headerValue); } // 构建请求体 HttpEntity<String> entity = new HttpEntity<>(body, headers); // 转发请求 String url = "https://hzdcim.obs.cn-south-1.myhuaweicloud.com/trainingdata"; ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.PUT, entity, String.class); return response; }}3.2 检查时间戳同步确保内部服务器与华为云服务器之间的时间同步。可以通过NTP(Network Time Protocol)服务来同步服务器时间。例如,在Linux系统中,可以使用以下命令来同步时间:sudo ntpdate ntp1.aliyun.com3.3 检查签名算法和参数如果在SpringBoot项目中手动构建了签名,确保签名算法和参数与华为云OBS服务的要求一致。可以参考华为云官方文档中的签名算法实现,确保没有遗漏或错误。具体可以参考以下官方文档:华为云OBS签名算法4. 进一步排查如果以上步骤仍然无法解决问题,建议进一步排查以下内容:查看日志信息:检查SpringBoot项目的日志和华为云OBS服务的访问日志,寻找更多详细的错误信息。使用工具辅助:可以使用网络抓包工具(如Wireshark)来捕获请求和响应的详细信息,对比直接调用和通过SpringBoot项目转发的请求差异。联系技术支持:如果问题依然无法解决,建议联系华为云的技术支持团队,提供详细的请求日志和错误信息,以便他们能够更快速地帮助您解决问题。 
  • 用户授权同步中,角色信息,商家和云商店之间是怎么同步的?SaaS系统内如何确定其角色?
    问题现象: 用户授权同步中,角色信息,商家和云商店之间是怎么同步的?SaaS系统内如何确定其角色? 解决方案:是买家在云商店创建联营账号是赋予的,有买家触发同步,且只能单向同步。云商店提供两个固定角色,但两个角色在SaaS中具体拥有什么权限,有SaaS系统判定,如果和原系统中的角色不匹配,可以当做系统中默认角色进行授权。 
  • 在使用ModelArts的notebook时,无法在终端使用conda create -n ll python=3.10 -y创建python环境
    问题现象: 在使用ModelArts的notebook时,无法在终端使用conda create -n ll python=3.10 -y创建python环境。但是在notebook的界面上可以使用这个命令进行编辑,在notebook上面第一次创建之后可以在终端创建环境。  解决方案: 您遇到的问题可能是由下列原因造成:1. Conda未初始化如果Conda环境在您的Notebook实例中未被正确初始化,那么您可能无法直接在终端中使用Conda命令。解决这个问题的方法是先手动初始化Conda环境。解决方案:在终端中运行以下命令来初始化Conda:conda init然后,重新启动终端(或Notebook实例),再次尝试创建Conda环境。2. 使用的是错误的Shell在某些情况下,您可能在使用一个不支持Conda命令的Shell。例如,如果您的默认Shell是sh或dash,那么您可能需要切换到bash或zsh来使用Conda命令。解决方案:确保您使用的是支持Conda命令的Shell。通常,bash是一个不错的选择。您可以通过在终端中输入bash来切换到bash Shell,然后尝试重新创建Conda环境。3. 环境变量问题如果在创建Notebook实例时,环境变量未正确设置,也可能导致无法在终端中使用Conda命令。这通常是因为conda命令不在您的PATH环境变量中。解决方案:您可以手动将Conda的安装路径添加到PATH环境变量中。通常,Conda的安装路径为~/anaconda3或~/miniconda3,具体路径取决于您的安装位置。在终端中运行以下命令:export PATH=~/anaconda3/bin:$PATH或者,如果您安装的是miniconda,使用:export PATH=~/miniconda3/bin:$PATH重启终端后,再尝试创建Conda环境。4. 权限问题在某些情况下,如果您的用户账户没有足够的权限来创建Conda环境,也可能导致命令失败。解决方案:确保您以正确的用户身份登录。对于ModelArts的Notebook,通常使用的是ma-user账户。检查当前登录用户:whoami如果不是ma-user,尝试切换用户:su - ma-user5. Conda版本问题如果您的Conda版本过低,可能不支持创建特定版本的Python环境(例如Python 3.10)。您可以尝试更新Conda到最新版本。解决方案:在终端中运行以下命令来更新Conda:conda update -n base -c defaults conda小结如果您按照上述步骤操作后仍然无法通过终端创建Conda环境,建议检查ModelArts Notebook的文档,或联系华为云的技术支持获取进一步的帮助。此外,如果您在Notebook的界面上可以成功创建环境,那么这通常意味着Conda环境本身是正常的,问题可能出在终端配置或环境变量上。希望以上信息对您有所帮助!  
  • 搭建开源博客属于开源开发吗
    问题现象: 搭建开源博客是否属于:成功提交一个基于开源软件创建的开源型开发环境,,或使用己有的开源型开发环境在华为云学习、实践和开发解决方案: 这个是属于的。基于华为云服务就行 
  • 论坛发帖无法上传图片
    问题现象: 编辑帖子。上传图片,图片上传失败 解决方案:如果是内网,会有限制上传文件不能大于100kb