Tous les produits
Search
Centre de documentation

Object Storage Service:Gestion des exceptions (SDK OSS pour Python 1.0)

Dernière mise à jour :Sep 22, 2026

Le SDK Object Storage Service (OSS) pour Python renvoie trois types d'exceptions : ClientError, RequestError et ServerError. Ces exceptions sont définies dans le sous-module oss2.exceptions.

Le tableau suivant décrit les variables associées aux exceptions.

Variable

Type

Description

status

int

  • En cas d'exception ServerError, cette variable contient un code d'état HTTP.

  • En cas d'exception ClientError ou RequestError, cette variable contient une valeur fixe.

request_id

str

  • En cas d'exception ServerError, le serveur OSS renvoie l'ID de la requête dans cette variable.

  • En cas d'exception ClientError ou RequestError, cette variable contient une chaîne vide.

code and message

str

Le texte contenu dans les balises XML Code et Message d'une réponse d'erreur OSS. Pour plus d'informations, consultez Réponses d'erreur.

Exemple de gestion des exceptions

L'exemple de code suivant montre comment gérer une exception et afficher le code d'état HTTP de l'erreur ainsi que l'ID de la requête lors de la tentative de téléchargement d'un objet inexistant :

# -*- 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

Une exception ClientError survient en raison d'une saisie incorrecte côté client. Par exemple, cette erreur se produit lorsque vous utilisez la méthode bucket.batch_delete_objects avec une liste d'objets vide. La valeur de status pour ClientError est oss2.exceptions.OSS_CLIENT_ERROR_STATUS.

RequestError

Lorsque la bibliothèque HTTP génère une erreur, le SDK OSS pour Python la convertit en RequestError. La valeur de status pour RequestError est oss2.exceptions.OSS_REQUEST_ERROR_STATUS.

ServerError

Lorsque le serveur OSS renvoie un code d'état HTTP, le SDK OSS pour Python le convertit en ServerError. La classe ServerError possède plusieurs sous-classes dérivées selon le code d'état HTTP et le code d'erreur OSS. La sous-classe NotFound correspond au code d'état HTTP 404. La sous-classe Conflict correspond au code d'état HTTP 409.

Le tableau suivant décrit les codes d'erreur courants.

Classe d'exception

Code d'état HTTP

Code d'erreur OSS

Description

NotModified

304

Null

La valeur spécifiée pour le paramètre If-Modified-Since est postérieure à la date réelle de modification de l'objet.

InvalidArgument

400

InvalidArgument

Le corps de la requête est spécifié dans une requête de téléchargement multipart pour laquelle x-oss-complete-all est défini sur yes. Dans ce cas, le corps de la requête ne doit pas être spécifié, sous peine de générer une erreur.

AccessDenied

403

AccessDenied

Vous ne disposez pas des autorisations requises.

NoSuchBucket

404

NoSuchBucket

Le bucket spécifié n'existe pas.

NoSuchKey

404

NoSuchKey

L'objet spécifié n'existe pas.

NoSuchUpload

404

NoSuchUpload

L'objet n'est pas entièrement téléchargé dans le cadre d'une requête de téléchargement multipart ou de reprise.

NoSuchWebsite

404

NoSuchWebsiteConfiguration

Le bucket spécifié ne comporte aucune configuration d'hébergement de site statique.

NoSuchLifecycle

404

NoSuchLifecycle

Aucune règle de cycle de vie n'est configurée pour le bucket spécifié.

NoSuchCors

404

NoSuchCORSConfiguration

Aucune règle de partage de ressources cross-origin (CORS) n'est configurée pour le bucket spécifié.

BucketNotEmpty

409

BucketNotEmpty

Le bucket à supprimer contient des objets, des parties générées par des tâches de téléchargement multipart incomplètes ou des LiveChannels.

PositionNotEqualToLength

409

PositionNotEqualToLength

La valeur de position dans la requête ne correspond pas à la taille actuelle de l'objet.

ObjectNotAppendable

409

ObjectNotAppendable

L'objet actuel n'est pas un objet pouvant faire l'objet d'un ajout.