日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

Python異常處理

OSS Python SDK異常(OssError)分為三類:ClientError、RequestErrorServerError,這些異常定義在oss2.exceptions子模塊中。

異常的變量、類型及描述如下表所示:

變量

類型0

描述

status

int

  • 如果為ServerError異常,則statusHTTP狀態碼。

  • 如果為ClientErrorRequestError異常,則status為固定值。

request_id

str

  • 如果為ServerError異常,則OSS服務器返回請求ID。

  • 如果為ClientErrorRequestError異常,則request_id返回的是空字符串。

codemessage

str

對應OSS的錯誤響應格式里的CodeMessage兩個XML Tag中的文本。

異常處理示例

以下代碼展示了下載一個不存在文件時的異常處理,并打印出錯誤信息的HTTP狀態碼和請求ID。

# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider

# 從環境變量中獲取訪問憑證。運行本代碼示例之前,請確保已設置環境變量OSS_ACCESS_KEY_ID和OSS_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"

# examplebucket填寫存儲空間名稱。
bucket = oss2.Bucket(auth, endpoint, "examplebucket", region=region)

try:
    # 填寫下載的文件名稱,例如exampleobject.txt。
    stream = bucket.get_object('exampleobject.txt')
except oss2.exceptions.NoSuchKey as e:
    print('status={0}, request_id={1}'.format(e.status, e.request_id))            

ClientError

ClientError是由于客戶端輸入有誤引起的。例如,使用bucket.batch_delete_objects方法時,如果收到空的文件列表,會拋出該異常。ClientErrorstatus值是oss2.exceptions.OSS_CLIENT_ERROR_STATUS。

RequestError

HTTP庫拋出異常時,Python SDK會將其轉換為RequestError。RequestErrorstatus值是oss2.exceptions.OSS_REQUEST_ERROR_STATUS。

ServerError

OSS服務器返回HTTP錯誤碼時,Python SDK會將其轉換為ServerError。ServerError根據HTTP狀態碼和OSS錯誤碼派生出多個子類。其中NotFound子類對應所有404異常,Conflict子類對應所有409異常。

下表列出了常見的錯誤碼:

異常類

HTTP狀態碼

OSS錯誤碼

描述

NotModified

304

使用條件下載時,通過If-Modified-Since參數指定的時間晚于Object實際修改時間。

InvalidArgument

400

InvalidArgument

分片上傳時如果指定了x-oss-complete-all:yes,則不允許繼續指定body,否則報錯。

AccessDenied

403

AccessDenied

沒有相應的訪問權限。

NoSuchBucket

404

NoSuchBucket

Bucket不存在。

NoSuchKey

404

NoSuchKey

文件不存在。

NoSuchUpload

404

NoSuchUpload

分片上傳或者斷點續傳時,部分分片上傳成功,但最終未完成上傳。

NoSuchWebsite

404

NoSuchWebsiteConfiguration

Bucket未配置靜態網站托管。

NoSuchLifecycle

404

NoSuchLifecycle

Bucket未配置生命周期規則。

NoSuchCors

404

NoSuchCORSConfiguration

Bucket未配置跨域資源共享。

BucketNotEmpty

409

BucketNotEmpty

要刪除的Bucket中存在未刪除的Object、未完成的分片上傳任務或Livechannel。

PositionNotEqualToLength

409

PositionNotEqualToLength

Position的值和當前Object的長度不一致。

ObjectNotAppendable

409

ObjectNotAppendable

當前文件不是Appendable類型。