AWS S3 NoSuchBucket Exception Not Caught in Rescue Clause
我正在尝试使用AWS SDK在Ruby中获取一个存储桶,并尝试捕获NoSuchBucket错误。 问题是,我的救援块没有捕获错误,所以我的应用程序崩溃了。 这是相关代码:
1 2 3 4 5 6 7 | begin b = s3.buckets[bucket_name] rescue AWS::S3::Errors::NoSuchBucket puts Invalid bucket name. exit 1 end |
并且错误消息是:
1 2 | C:/Ruby193/lib/ruby/gems/1.9.1/gems/aws-sdk-1.5.6/lib/aws/core/client.rb:277:in `return_or_raise': The specified bucket does not exist (AWS::S3::Errors::NoSuchBucket) |
我只是犯了一个愚蠢的初学者语法错误,或者AWS代码中是否存在实际上没有抛出错误的错误? 我也试过捕捉所有的错误,但仍然没有骰子。
1 | b = s3.buckets[bucket_name] |
实际上不会发出任何请求,也不会通过
它只返回一个知道名称是什么的bucket对象。 只有在您实际尝试对存储桶执行某些操作(列出其内容,向其添加文件)时才会发生请求,此时此时会引发
如果你只是想验证它确实存在,你可以做类似的事情
1 | s3.buckets[bucket_name].exists? |