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-阿裏雲