错误自助排查(Python SDK V1)

更新时间:
复制 MD 格式

当您使用OSS Python SDK访问OSS出现错误时,OSS会返回HTTP Code、Message、RequestId、EC错误码等信息,其中EC码对应一个具体的错误原因,您可以使用EC码自助进行错误排查。

操作步骤

  1. 例如,当您使用以下代码下载一个并不存在的文件时。

    # -*- coding: utf-8 -*-
    import oss2
    from oss2.credentials import EnvironmentVariableCredentialsProvider
    # 创建Server对象。
    # 从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_IDOSS_ACCESS_KEY_SECRET。
    auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())
    # 填写Bucket所在地域对应的Endpoint。以华东1(杭州)为例,Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com。
    endpoint = "https://oss-cn-hangzhou.aliyuncs.com"
    # 填写Endpoint对应的Region信息,例如cn-hangzhou。注意,v4签名下,必须填写该参数
    region = "cn-hangzhou"
    # yourBucketName填写存储空间名称。
    bucket = oss2.Bucket(auth, endpoint, "yourBucketName", region=region)
    # 填写Object完整路径,完整路径中不包含Bucket名称,例如testfolder/exampleobject.txt。
    # 下载Object到本地文件,并保存到指定的本地路径D:\\localpath\\examplefile.txt。如果指定的本地文件存在会覆盖,不存在则新建。
    bucket.get_object_to_file('testfolder/exampleobject.txt', 'D:\\localpath\\examplefile.txt')
    print("Download complete.")
    
  2. 返回示例如下,返回结果中包含'EC': '0026-00000001',作为该错误原因的唯一标识。

    raise e
    oss2.exceptions.NoSuchKey: {'status': 404, 'x-oss-request-id': '67B6C86EDF72713234AC552D', 'details': {'Code': 'NoSuchKey', 'Message': 'The specified key does not exist.', 'RequestId': '67B6C86EDF72713234AC552D', 'HostId': 'xxx.oss-cn-hangzhou.aliyuncs.com', 'Key': 'xxx', 'EC': '0026-00000001', 'RecommendDoc': 'https://api.aliyun.com/troubleshoot?q=0026-00000001'}}
  3. 通过以上错误请求示例返回的EC错误码查找问题原因及对应解决方法的操作步骤如下。

    1. 打开OpenAPI问题自助诊断平台

    2. 在搜索框中,输入EC错误码,例如0026-00000001。在文本输入框中粘贴包含 RequestID 的错误信息,然后单击诊断按钮。

    3. 在搜索结果中查找问题原因及对应解决方案。搜索后,诊断平台将展示对应错误码的诊断方案。以错误码 0026-00000001 为例,页面依次展示问题描述(目标文件不存在)、问题原因(Object 不存在的四种可能原因)、问题示例(含请求示例代码块)、解决方案(通过 HeadObject 接口验证 Object 是否存在、通过 ListObjectVersions 获取版本 ID 等)以及相关文档(NoSuchKey、NoSuchVersion)。