You need to enable JavaScript to run this app.
对象存储

对象存储

复制全文
Browser.js
异常处理(Browser.js SDK)
复制全文
异常处理(Browser.js SDK)

本文介绍使用 TOS SDK 时的异常处理。

TOS 服务端错误

TOS 服务端遵循 HTTP 规范,对于请求失败的场景定义了详细的 HTTP 状态码和业务错误码。详细内容,请参见 TOS 服务端状态码和错误码定义

SDK 自定义错误

客户端错误 - TosClientError

TosClientError 是客户端输入参数有误、连接超时或客户端执行取消断点续传上传等特殊操作引起的。例如使用 CreateBucketV2 创建桶时,如果桶名字符长度大于 63 个字符则抛出异常。

服务端错误 - TosServerError

通过 TOS SDK 接口向 TOS 服务端发送请求,请求响应中会包含遵循 HTTP 规范的状态码和业务错误码,用于标识当前请求的响应状态。

错误处理示例

以下代码展示了下载一个不存在的对象时的异常处理。

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>Document</title>
  </head>
  <body>
    <button id="download">下载</button>
    <!-- 导入 SDK 文件 -->
    <script src="https://tos-public.volccdn.com/obj/volc-tos-public/@volcengine/tos-sdk@latest/browser/tos.umd.production.min.js"></script>
    <script type="text/javascript">
      const { TosClientError, TosServerError } = TosClient;
      const client = new TosClient({
        // yourRegion 填写 Bucket 所在地域。以华北2(北京)为例,yourRegion 填写为 cn-beijing。
        region: yourRegion,
        // 填写 endpoint 名称。
        endpoint: yourEndpoint,
        // 从 STS 服务获取的临时访问密钥(AccessKey ID 和 AccessKey Secret)。
        accessKeyId: yourAccessKey,
        accessKeySecret: yourSecretKey,
        // 从 STS 服务获取的安全令牌(SecurityToken)。
        stsToken: yourSecurityToken,
        // 填写 Bucket 名称。
        bucket: examplebucket,
      });
      
      function handleError(error) {
        if (error instanceof TosClientError) {
          console.log('Client Err Msg:', error.message);
          console.log('Client Err Stack:', error.stack);
        } else if (error instanceof TosServerError) {
          console.log('Request ID:', error.requestId);
          console.log('Response Status Code:', error.statusCode);
          console.log('Response Header:', error.headers);
          console.log('Response Err Code:', error.code);
          console.log('Response Err Msg:', error.message);
        } else {
          console.log('unexpected exception, message: ', error);
        }
      }
      
      const download = document.getElementById('download');
      download.addEventListener('click', async () => {
        try {
          await client.getObjectV2({
            key: 'exampledir/notExistObjct.txt',
            dataType: 'blob',
          });
        } catch (error) {
          handleError(error);
        }
      });
    </script>
  </body>
</html>
最近更新时间:2024.02.04 18:30:57
这个页面对您有帮助吗?
有用
有用
无用
无用