JHu*_*nnh 6 python error-handling amazon-s3 boto3
使用 Python boto3 从 S3 获取对象时进行错误处理的最佳方法是什么?
我的做法:
from botocore.exceptions import ClientError
import boto3
s3_client = boto3.client('s3')
try:
s3_object = s3_client.get_object("MY_BUCKET", "MY_KEY")
except ClientError, e:
error_code = e.response["Error"]["Code"]
# do error code checks here
Run Code Online (Sandbox Code Playgroud)
我不确定 ClientError 是否是此处使用的最佳异常。我知道有一个 Boto3Error 类,但我认为您不能像 ClientError 那样进行错误代码检查。
我认为你的方法已经足够了。如果您可以将错误缩小到几个,则可以将其分解为if
块,并进行相应的处理。
except ClientError as e:
error_code = e.response["Error"]["Code"]
if error_code == "AccessDenied":
# do code
elif error_code == "InvalidLocationConstraint":
# do more code
Run Code Online (Sandbox Code Playgroud)
这只是一种实验方法。因为大多数错误响应都是 API 驱动的,我认为您不会直接在代码中的任何地方找到它们(即:doing except AccessDenied:
)。您可以在此处找到Amazon S3 的所有错误响应。
归档时间: |
|
查看次数: |
6001 次 |
最近记录: |