首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在我的春季引导代码中处理AmazonSAM桶的404错误

如何在我的春季引导代码中处理AmazonSAM桶的404错误
EN

Stack Overflow用户
提问于 2019-07-25 10:08:13
回答 2查看 4.7K关注 0票数 0

实际上,我在我的spring引导应用程序中遇到了一个问题,我开发了一个与s3桶链接的restful,我定制了一些异常,但是当我运行url以获得控制台中不存在的对象时,我在我的控制台中看到了这个错误异常:

2019-07-25 09:06:45.733错误1 -nio-443-exec-1 o.a.c.c.C.[.[./.dispatcherServlet : Servlet.service() for servlet dispatcherServlet in path []引发的异常请求处理失败;嵌套异常为Servlet.service-1 o.a.c.c.)--指定的键不存在。(服务: DUEnMWN7YZKug74Q15uHt4Zei3+a7SxTNYzoj99O0YW58WOwvkdM1kwYpcHrGJiTrLkRLOdUL5I=),S3;状态代码: 404;错误代码: NoSuchKey;请求ID: 60E24BCF6860FC66;S3扩展请求ID: S3 S3 Extended : DUEnMWN7YPOAIZADg74Q15uHt4Zei3+a7SxTNYzoj99O0YW58WOwvkdM1kwYpcHrGJiTrLkRLOdUL5I=及其根源 com.amazonaws.services.s3.model.AmazonS3Exception:指定的键不存在。(服务: S3;状态代码: 404;错误代码: NoSuchKey;请求ID: 60E24BCF6860FC 66;S3扩展请求ID: NoSuchKey)

因此,我的问题是如何对此错误执行定制,具体如下:

  1. 控制台中没有显示此错误(从技术上讲,我不是指更改日志参数)
  2. 使用一些方法处理此异常
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-07-25 10:16:04

编写自定义异常处理程序来捕获异常并执行优雅的操作。

代码语言:javascript
运行
复制
@ControllerAdvice
@RestController
public class CustomExceptionHandler extends ResponseEntityExceptionHandler {

    @ExceptionHandler(AmazonS3Exception.class)
    public final ResponseEntity<Object> handleAmazonS3Exception(AmazonS3Exception ex, WebRequest request) {
        ApiError apiError = new ApiError(UNPROCESSABLE_ENTITY, ex.getLocalizedMessage(), ex.getErrors());
        return new ResponseEntity<>(apiError, UNPROCESSABLE_ENTITY);
    }
}

在这里,UNPROCESSABLE_ENTITY是一个HttpStatus (org.springframework.http.HttpStatus)

请根据您的需求更改方法handleAmazonS3Exception(...)的代码。

票数 1
EN

Stack Overflow用户

发布于 2019-07-25 11:36:44

如果希望完全避免异常,可以在尝试下载该对象之前使用Aws s3 api查看该对象是否存在。我认为方法是doesObjectExist。但是,如果您要下载该文件,以防止其存在,这似乎是过火了。因此,您可以尝试捕获,如果最终捕获到AmazonS3Exception,则检查状态代码并相应地执行操作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57199445

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档