526
直播
出错处理__Python-SDK_SDK 参考_对象存储 OSS-阿里云
在程序运行过程中,如果遇到错误,Python SDK会抛出相应的异常。 一共有三类异常:ClientError、RequestError和ServerError,它们都是OssError的子类。 这些异常都在oss2.exceptions子模块中定义。
OssError一些重要的成员变量如下:
- status:int类型。对于ServerError就是HTTP状态码;对于另外两类异常,该值为固定值。
- request_id:str类型。对于ServerError就是OSS服务器返回请求ID;对于另外两类异常,该值为空字符串。
- code和message:str类型。就是OSS的错误响应格式里的Code和Message两个XML Tag中的文本。
ClientError
ClientError是因用户的输入有误引起的。比如,Bucket.batch_delete_objects当收到空的文件名列表时,就会抛出该异常。 ClientError对象的status值是固定的oss2.exceptions.OSS_CLIENT_ERROR_STATUS。
RequestError
当底层的HTTP库抛出异常时,Python SDK会将其转换为RequestError。这些异常对象的status值是固定的oss2.exceptions.OSS_REQUEST_ERROR_STATUS。
ServerError
当OSS服务器返回4xx或5xx的HTTP错误码时,Python SDK会将OSS Server的响应转换为ServerError。 为了方便使用,根据status和code,还派生出了一些子类:
异常类 | 对应的HTTP状态码 | OSS错误码 | 备注 |
---|---|---|---|
NotModified | 304 | 空 | 没有修改 |
AccessDenied | 403 | AccessDenied | 拒绝访问 |
NoSuchBucket | 404 | NoSuchBucket | Bucket不存在 |
NoSuchKey | 404 | NoSuchKey | 文件名不存在 |
NoSuchUpload | 404 | NoSuchUpload | 分片上传不存在 |
NoSuchWebsite | 404 | NoSuchWebsiteConfiguration | 静态网站托管未配置 |
NoSuchLifecycle | 404 | NoSuchLifecycle | 生命周期管理未配置 |
NoSuchCors | 404 | NoSuchCORSConfiguration | CORS未配置 |
BucketNotEmpty | 409 | BucketNotEmpty | Bucket非空 |
PositionNotEqualToLength | 409 | PositionNotEqualToLength | Append的位置和文件长度不相等 |
ObjectNotAppendable | 409 | ObjectNotAppendable | 不是可追加文件 |
另外,所有404状态码的异常都是NotFound的子类;所有409状态码的异常都是Conflict的子类。
注意 不是所有的OSS错误码都有对应的异常。目前只定义了比较常用的一些。
示例
下面的代码展示了下载一个文件时,如何处理文件名不存在的情形,并打印出HTTP状态码和请求ID:
# -*- coding: utf-8 -*-
import oss2
auth = oss2.Auth('您的AccessKeyId', '您的AccessKeySecret')
bucket = oss2.Bucket(auth, '您的Endpoint', '您的Bucket名')
try:
stream = bucket.get_object('random-key.txt')
except oss2.exceptions.NoSuchKey as e:
print('status={0}, request_id={1}'.format(e.status, e.request_id))
最后更新:2016-11-23 16:04:10
上一篇:
管理存储空间__Python-SDK_SDK 参考_对象存储 OSS-阿里云
下一篇:
中文和时间__Python-SDK_SDK 参考_对象存储 OSS-阿里云
HTTPDNS域名解析场景下如何使用Cookie?__最佳实践_HTTPDNS-阿里云
RowInBatchGetRowRequest__DataType_API 参考_表格存储-阿里云
Java UDF__UDF_SQL_大数据计算服务-阿里云
C-SDK使用(threadx)__SDK使用参考_设备端接入手册_阿里云物联网套件-阿里云
查询流控记录__JAVA SDK_SDK 手册_CDN-阿里云
域名状态信息__数据类型_API文档_域名-阿里云
CDN加速导致CORS配置失效__运维技术分享_技术运维问题_CDN-阿里云
保留字__附录_SQL_大数据计算服务-阿里云
云服务器 ECS扩容数据盘(Windows实例)
如何获取错误信息__错误说明_API 网关-阿里云
相关内容
常见错误说明__附录_大数据计算服务-阿里云
发送短信接口__API使用手册_短信服务-阿里云
接口文档__Android_安全组件教程_移动安全-阿里云
运营商错误码(联通)__常见问题_短信服务-阿里云
设置短信模板__使用手册_短信服务-阿里云
OSS 权限问题及排查__常见错误及排除_最佳实践_对象存储 OSS-阿里云
消息通知__操作指南_批量计算-阿里云
设备端快速接入(MQTT)__快速开始_阿里云物联网套件-阿里云
查询API调用流量数据__API管理相关接口_API_API 网关-阿里云
使用STS访问__JavaScript-SDK_SDK 参考_对象存储 OSS-阿里云