Код ошибки для попытки/перехвата с загрузкой boto3 S3

#python #python-3.x #amazon-s3 #boto3 #botocore

Вопрос:

У меня есть функция, которую я использую для загрузки файлов/папок в S3 с помощью boto3 . Я хочу иметь try/catch систему, которая обрабатывает ошибки, если что-то не удается загрузить.:

 import os
import boto3
import botocore

def upload_files(key, secret, bucket, s3_path, source_path):

    session = boto3.Session(
        aws_access_key_id=key,
        aws_secret_access_key=secret,
        region_name='us-east-1'
    )

    s3 = session.resource('s3')
    bucket = s3.Bucket(bucket)
    
    try:
        for subdir, dirs, files in os.walk(source_path):
            for file in files:
                full_path = os.path.join(subdir, file)
                with open(full_path, 'rb') as data:
                    bucket.put_object(Key=s3_path   full_path, Body=data, ServerSideEncryption='AES256')
    except botocore.exceptions.ClientError as e:
        if e.response['Error']['Code'] == "404":
            print("The object does not exist.")
        else:
            raise
 

Я считаю, что это неправильный код ошибки, который я ищу. Я проверил все возможные:

 import botocore
import boto3
[e for e in dir(botocore.exceptions) if e.endswith('Error')]

['AliasConflictParameterError',
 'ApiVersionNotFoundError',
 'BaseEndpointResolverError',
 'BotoCoreError',
 'CapacityNotAvailableError',
 'ChecksumError',
 'ClientError',
 'ConfigParseError',
 'ConnectTimeoutError',
 'ConnectionClosedError',
 'ConnectionError',
 'CredentialRetrievalError',
 'DataNotFoundError',
 'EndpointConnectionError',
 'EventStreamError',
 'HTTPClientError',
 'IncompleteReadError',
 'InfiniteLoopConfigError',
 'InvalidConfigError',
 'InvalidDNSNameError',
 'InvalidEndpointDiscoveryConfigurationError',
 'InvalidExpressionError',
 'InvalidHostLabelError',
 'InvalidIMDSEndpointError',
 'InvalidMaxRetryAttemptsError',
 'InvalidProxiesConfigError',
 'InvalidRegionError',
 'InvalidRetryConfigurationError',
 'InvalidRetryModeError',
 'InvalidS3AddressingStyleError',
 'InvalidS3UsEast1RegionalEndpointConfigError',
 'InvalidSTSRegionalEndpointsConfigError',
 'MD5UnavailableError',
 'MetadataRetrievalError',
 'MissingParametersError',
 'MissingServiceIdError',
 'NoCredentialsError',
 'NoRegionError',
 'OperationNotPageableError',
 'PaginationError',
 'ParamValidationError',
 'PartialCredentialsError',
 'ProxyConnectionError',
 'RangeError',
 'ReadTimeoutError',
 'RefreshWithMFAUnsupportedError',
 'SSLError',
 'SSOError',
 'SSOTokenLoadError',
 'ServiceNotInRegionError',
 'StubAssertionError',
 'StubResponseError',
 'UnStubbedResponseError',
 'UnauthorizedSSOTokenError',
 'UndefinedModelAttributeError',
 'UnknownClientMethodError',
 'UnknownCredentialError',
 'UnknownEndpointError',
 'UnknownKeyError',
 'UnknownParameterError',
 'UnknownServiceError',
 'UnknownSignatureVersionError',
 'UnseekableStreamError',
 'UnsupportedOutpostResourceError',
 'UnsupportedS3AccesspointConfigurationError',
 'UnsupportedS3ArnError',
 'UnsupportedS3ControlArnError',
 'UnsupportedS3ControlConfigurationError',
 'UnsupportedSignatureVersionError',
 'ValidationError',
 'WaiterConfigError',
 'WaiterError']
 

Учитывая это, я не уверен, что использовать из этого списка в моем случае и как добавить это в функцию, которая у меня есть прямо сейчас. Любая помощь будет признательна!