Todos os produtos
Search
Central de documentação

Object Storage Service:Exception handling (OSS SDK for Python 1.0)

Última atualização: Jul 03, 2026

O SDK do Object Storage Service (OSS) para Python retorna três tipos de exceções: ClientError, RequestError e ServerError. Essas exceções estão definidas no submódulo oss2.exceptions.

A tabela a seguir descreve as variáveis das exceções.

Variável

Tipo

Descrição

status

int

  • Em caso de exceção ServerError, esta variável retorna um código de status HTTP.

  • Em caso de exceção ClientError ou RequestError, esta variável retorna um valor fixo.

request_id

str

  • Em caso de exceção ServerError, o servidor do OSS retorna o ID da solicitação nesta variável.

  • Em caso de exceção ClientError ou RequestError, esta variável retorna uma string vazia.

code e message

str

Texto das tags XML Code e Message em uma resposta de erro do OSS. Para obter mais informações, consulte Respostas de erro.

Exemplo de tratamento de exceções

O exemplo de código a seguir mostra como tratar uma exceção e exibir o código de status HTTP do erro e o ID da solicitação ao tentar baixar um objeto inexistente:

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

# Obtain access credentials from the environment variables. Before you run the sample code, make sure that you have configured environment variables OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET. 
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())

# Specify the endpoint of the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the endpoint to https://oss-cn-hangzhou.aliyuncs.com. 
endpoint = "https://oss-cn-hangzhou.aliyuncs.com"
# Specify the ID of the region that maps to the endpoint. Example: cn-hangzhou. This parameter is required if you use the signature algorithm V4.
region = "cn-hangzhou"

# Specify the name of the bucket.
bucket = oss2.Bucket(auth, endpoint, "examplebucket", region=region)

try:
    # Specify the name of the downloaded object. Example: 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

A exceção ClientError ocorre devido a entradas incorretas no cliente. Por exemplo, esse erro surge ao usar o método bucket.batch_delete_objects e receber uma lista de objetos vazia. O valor de status para ClientError é oss2.exceptions.OSS_CLIENT_ERROR_STATUS.

RequestError

Quando a biblioteca HTTP gera um erro, o SDK do OSS para Python o converte em RequestError. O valor de status para RequestError é oss2.exceptions.OSS_REQUEST_ERROR_STATUS.

ServerError

Quando o servidor do OSS retorna um código de status HTTP, o SDK do OSS para Python o converte em ServerError. A classe ServerError deriva várias subclasses com base no código de status HTTP e no código de erro do OSS. A subclasse NotFound corresponde ao código de status HTTP 404. A subclasse Conflict corresponde ao código de status HTTP 409.

A tabela a seguir descreve os códigos de erro comuns.

Classe de exceção

Código de status HTTP

Código de erro do OSS

Descrição

NotModified

304

Null

O valor especificado para o parâmetro If-Modified-Since é posterior ao horário real de modificação do objeto.

InvalidArgument

400

InvalidArgument

Um corpo de solicitação foi especificado em uma solicitação de upload multipartido em que x-oss-complete-all foi definido como yes. Nesse cenário, não é permitido especificar o corpo da solicitação; caso contrário, ocorrerá um erro.

AccessDenied

403

AccessDenied

Você não tem as permissões necessárias.

NoSuchBucket

404

NoSuchBucket

O bucket especificado não existe.

NoSuchKey

404

NoSuchKey

O objeto especificado não existe.

NoSuchUpload

404

NoSuchUpload

O upload do objeto não foi concluído em uma solicitação de upload multipartido ou upload retomável.

NoSuchWebsite

404

NoSuchWebsiteConfiguration

O bucket especificado não tem configurações de hospedagem de site estático.

NoSuchLifecycle

404

NoSuchLifecycle

Nenhuma regra de ciclo de vida está configurada para o bucket especificado.

NoSuchCors

404

NoSuchCORSConfiguration

Não há regras de compartilhamento de recursos de origem cruzada (CORS) configuradas no bucket especificado.

BucketNotEmpty

409

BucketNotEmpty

O bucket a ser excluído contém objetos, partes geradas por tarefas de upload multipartido incompletas ou LiveChannels.

PositionNotEqualToLength

409

PositionNotEqualToLength

O valor de position na solicitação não corresponde ao tamanho atual do objeto.

ObjectNotAppendable

409

ObjectNotAppendable

O objeto atual não permite anexação.