文档首页 > > SDK参考> Python> 问题定位> 问题定位方法

问题定位方法

分享
更新时间: 2019/11/21 GMT+08:00

使用OBS Python SDK对接OBS服务可能会遇到许多问题,您可以通过下面介绍的步骤进行问题分析和定位:

  1. 确保使用的是OBS Python SDK的最新版本, 您可以从这里下载最新版本;
  2. 推荐开启OBS Python SDK日志功能,开启方式参见日志分析章节,通常建议的日志级别为WARN;
  3. 确保使用OBS Python SDK的程序代码遵照OBS客户端通用示例编写,所有ObsClient的接口调用都进行了异常处理且对返回结果都进行了HTTP状态码判断,例如上传对象的示例如下:

    # 引入模块
    from obs import ObsClient
    
    # ObsClient是线程安全的,可在并发场景下使用
    # 创建ObsClient实例
    obsClient = ObsClient(
        access_key_id='*** Provide your Access Key ***',    
        secret_access_key='*** Provide your Secret Key ***',    
        server='https://your-endpoint'
    )
    try:
        resp = obsClient.putContent('bucketname', 'objectname', 'Hello OBS')
        # 未发生异常,表明接口调用完成,通过SDK公共结果对象进一步判断HTTP状态码
        if resp.status < 300:    
            # 可选:调用成功后,记录调用成功的HTTP状态码和服务端请求ID
            print('status:', resp.status)
            print('requestId:', resp.requestId)
        else:    
            # 推荐:调用失败后,记录失败的HTTP状态码、服务端错误码、服务端请求ID等
            print('status:', resp.status)
            print('errorCode:', resp.errorCode)    
            print('requestId:', resp.requestId)
     except Exception as e:
        import traceback
        # 推荐: 发生异常,记录异常堆栈,常见场景是网络异常
        print(traceback.format_exc())

    您可以从这里查看关于SDK公共结果对象的详细说明。

  4. 当调用ObsClient的接口发生异常时,首先排查客户端到OBS服务端的网络健康状况,如果网络良好,收集异常堆栈信息并联系OBS客户端运维团队定位异常原因;
  5. 当调用ObsClient的接口失败时,从SDK公共结果对象中获取HTTP状态码OBS服务端错误码后进行对照,排查失败原因;
  6. 如果通过步骤5未能排查到异常原因,可从SDK公共结果对象中获取OBS服务端请求ID后联系OBS服务端运维团队定位失败原因;
  7. 如果无法从SDK公共结果对象中获取OBS服务端请求ID,请联系OBS客户端运维团队定位失败原因。
分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

跳转到云社区