gpt4 book ai didi

java - 如何在我的 Spring Boot 代码中处理亚马逊 s3 存储桶的 404 错误

转载 作者:行者123 更新时间:2023-12-02 09:39:40 25 4
gpt4 key购买 nike

我的 spring-boot 应用程序实际上有一个问题,我开发了一个链接到 s3 存储桶的 Restful api,我自定义了一些异常,但是当我运行我的 url 来获取控制台中不存在的对象时,我看到了我的控制台中出现此错误异常:

2019-07-25 09:06:45.733 ERROR 1 --- [-nio-443-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is com.amazonaws.services.s3.model.AmazonS3Exception: The specified key does not exist. (Service: Amazon S3; Status Code: 404; Error Code: NoSuchKey; Request ID: 60E24BCF6860FC66; S3 Extended Request ID: DUEnMWN7YZKug74Q15uHt4Zei3+a7SxTNYzoj99O0YW58WOwvkdM1kwYpcHrGJiTrLkRLOdUL5I=), S3 Extended Request ID: DUEnMWN7YPOAIZADg74Q15uHt4Zei3+a7SxTNYzoj99O0YW58WOwvkdM1kwYpcHrGJiTrLkRLOdUL5I=] with root cause

com.amazonaws.services.s3.model.AmazonS3Exception: The specified key does not exist. (Service: Amazon S3; Status Code: 404; Error Code: NoSuchKey; Request ID: 60E24BCF6860FC66; S3 Extended Request ID: DUEnMWN7YZKug74Q15uHt4ZDFSFSQSDei3+a7SxTNYzoj99O0YW58WOwvkdM1kwYpcHrGJiTrLkRLOdUL5I=)

所以我的问题是如何对这个错误进行两点定制:

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

最佳答案

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

@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(...)的代码。

关于java - 如何在我的 Spring Boot 代码中处理亚马逊 s3 存储桶的 404 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57199445/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com