简介
调用 SDK 接口请求对象存储(Cloud Object Storage,COS)服务失败时,例如返回码为4xx或者5xx,系统将抛出 (Qcloud\Cos\Exception\ServiceResponseException)异常。
服务端异常
CosServerException 包含了服务端返回的状态码、requestid 和出错明细等。捕获异常后,建议对整个异常进行打印,异常包含了必须的排查因素。以下是异常成员变量的描述以及异常捕获示例:
成员 | 描述 | 类型 |
requestId | 请求 ID,用于表示一个请求,对于排查问题十分重要 | string |
statusCode | response 的 status 状态码,更多详情请参见 错误码 | string |
errorCode | 请求失败时 body 返回的 Error Code,更多详情请参见 错误码 | string |
errorMessage | 请求失败时 body 返回的 Error Message,更多详情请参见 错误码 | string |
异常捕获示例
<?php
require dirname(__FILE__) . '/../vendor/autoload.php';
$secretId = "SECRETID"; //替换为用户的 secretId,请登录访问管理控制台进行查看和管理,https://console.cloud.tencent.com/cam/capi$secretKey = "SECRETKEY"; //替换为用户的 secretKey,请登录访问管理控制台进行查看和管理,https://console.cloud.tencent.com/cam/capi$region = "ap-beijing"; //替换为用户的 region,已创建桶归属的region可以在控制台查看,https://console.cloud.tencent.com/cos5/bucket$cosClient = new Qcloud\Cos\Client( array( 'region' => $region, 'scheme' => 'https', //协议头部,默认为http 'credentials'=> array( 'secretId' => $secretId , 'secretKey' => $secretKey)));
try { $cosClient->listBuckets() } catch (Qcloud\Cos\Exception\ServiceResponseException $e) { $statusCode = $e->getStatusCode(); // 获取错误码 $errorMessage = $e->getMessage(); // 获取错误信息 $requestId = $e->getRequestId(); // 获取错误的 requestId $errorCode = $e->getCosErrorCode(); // 获取错误名称 $request = $e->getRequest(); // 获取完整的请求 $response = $e->getResponse(); // 获取完整的响应 echo ($e);} catch (\Exception $e) {
}
注意:如您使用 Phar 方式或源码方式安装 SDK,返回的异常信息提示会更加准确。如您使用 Composer 方式安装 SDK,返回的异常信息如不符合您的需求,可通过修改 vendor/guzzlehttp/guzzle-services/src/SchemaValidator.php 来自定义一些错误信息。
使用自助诊断工具
针对请求可能遇到不同的报错情况,我们为您提供了 COS 自助诊断工具,帮助您快速定位问题,调试报错代码。
使用步骤
1. 复制异常处理返回的 RequestId(请求 ID)。2. 单击 COS 自助诊断工具,进入自助诊断页面。3. 在顶部的 RequestId 输入框中,输入待诊断的 RequestId,并单击开始诊断,请您耐心等待几分钟,便能看到相应的智能诊断结果。
对象存储官网1折活动,限时活动,即将结束,速速收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利。同意关联立享优惠
转转请注明出处:https://www.yunxiaoer.com/146016.html