问题
我正在尝试确定 AWS ruby SDK 返回的错误是服务器错误还是客户端错误。
使用gem 'aws-sdk-s3', '~> 1'
.
查看文档:https ://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/Errors/ServiceError.html#code-instance_method指定返回错误级别 400~>599作为一个ServiceError
. 但是如何识别子集:500~>599?
我通过以下检查捕获异常:
begin
resource = Aws::S3::Resource.new(client: ...)
bucket = resource.bucket(...)
object = bucket.object(...).get
rescue Aws::S3::Errors::ServiceError => e
puts 'server error' if e.<missing part> ???
end
我无法弄清楚“缺失的部分”是什么。
解决方案
Aws::S3::Errors::ServiceError
有一个上下文参数,它本身有一个http_response。
puts 'server error' if e.context.http_response[:status_code].between?(500, 599)