이동봉사 중개 공고 등록 API 구현 중
S3에 이미지를 올리는 과정에서 warn 로그 발생
S3 warning: "No content length specified for stream data"
AWS 공식 문서에 나와 있는 설명 ↓
metadata 콘텐츠 길이를 정해 해결!
ObjectMetadata metadata = new ObjectMetadata();
try (InputStream inputStream = multipartFile.getInputStream()) {
metadata.setContentLength(multipartFile.getSize()); // metadata ContentLength 설정
amazonS3Client.putObject(bucketName, savedFileName, inputStream, metadata);
} catch (IOException e) {
log.error("Failed to upload image", e);
throw new BadRequestException(INVALID_FILE_UPLOAD);
참고 자료 :
AWS S3 Upload 시 발생하는 No content length specified for stream data 해결 방법
AWS S3 버킷에 이미지를 업로드 도중 아래와 같은 로그가 발생하였다. 에러 해결 방법에 대해서 정리한다. No content length specified for stream data. Stream contents will be buffered in memory and could result in out of me
sjparkk-dev1og.tistory.com
S3에 이미지 업로드 시 나타나는 warn 로그
JAXB is unavailable. Will fallback to SDK implementation which may be less performant.If you are using Java 9+, you will need to include javax.xml.bind:jaxb-api as a dependency.
JAXB 사용이 불가능해 좀 더 성능이 낮을 수 있는 SDK 구현체로 Fallback 처리 될 것이라는 로그이다.
AWS-SDK는 내부적으로 이미지를 올릴 때 성능이 더 좋은 JAXB를 사용한다고 한다!
해결하기 위해 아래의 의존성 추가
implementation 'com.amazonaws:aws-java-sdk-s3:1.12.429' // S3 서비스와 상호 작용
implementation 'javax.xml.bind:jaxb-api:2.4.0-b180830.0359' // XML 데이터를 자바 객체로 매핑하는 데 사용
정말 JAXB를 사용하면 성능이 떨어질까? 밑에는 테스트 해 본 분의 블로그인데 여러 가지 상황을 고려해 봐야 할 듯 하다!
참고 자료:
Java AWS SDK 성능 하락이 될 수 있는 문제
배포에 나가기 전 베타에 나가 있는 로그를 확인하던 와중에 아래 WARNING 로그를 발견했다. JAXB is unavailable. Will fallback to SDK implementation which may be less performant.If you are using Java 9+, you will need to include
www.roach-dev.com
그런데 . . !
문제! 💥
aws-java-sdk 의존성을 추가할 경우 아래의 로그 출력됨 . .
please remove commons-logging.jar from classpath in order to avoid potential conflicts
commons-logging.jar 파일이 프로젝트의 클래스 패스에 있을 때 발생하는 충돌이나 문제에 대한 경고이다..!
의존성에는 해당 라이브러리를 추가하지 않았지만 충돌이 일어나, aws-java-sdk 의존성 해제 후 JAXB의 의존성만 추가했다!
참고 자료:
Java 11 - JAXB is unavailable. Will fallback to SDK implementation which may be less performant · Issue #15 · seek-oss/gradle-
When using the plugin with java 11 I can see the following message: JAXB is unavailable. Will fallback to SDK implementation which may be less performant. Googling a bit I found the following file ...
github.com
'Trouble Shooting' 카테고리의 다른 글
ConnectDog 동시성 이슈 해결 (1) | 2024.03.11 |
---|---|
saveAll 사용 시 쿼리가 여러 번 나가는 문제 이유는? (1) | 2023.11.11 |
게시글 테이블과 게시글 이미지 테이블의 연관 관계 설정 (0) | 2023.11.11 |
RDB vs NoSQL (0) | 2023.10.20 |
소셜 로그인, JWT 관련 의문점 정리 (0) | 2023.10.18 |