
AmazonS3Client - No content length specified for stream data. Stream contents will be buffered in memory and could result in out of memory errors.
인텔리제이에서 위 WARN이 발생하였는데 이 경고는 아래 내용이다.
ContentLength가 지정되지 않았기 때문에 데이터 스트림이 메모리에 버퍼링될 것입니다.
이로 인해 메모리 부족 오류가 발생할 수 있습니다.
메모리에 큰 양의 데이터를 버퍼링하면 리소스를 상당히 소모할 수 있습니다.
회사)
백오피스 개발을 할 때 메모리 부족 오류가 발생하였는지 웹페이지가 에러가 발생했고,
아래처럼 수정하였더니 해결되었다.
WARN이 발생한 기존 코드)
ObjectMetadata objectMetadata = new ObjectMetadata();
if(ext.equalsIgnoreCase("APK")) {
objectMetadata.setContentType("application/vnd.android.package-archive");
//objectMetadata.setBucketKeyEnabled(true);
}
수정한 코드)
ObjectMetadata objectMetadata = new ObjectMetadata();
if(ext.equalsIgnoreCase("APK")) {
objectMetadata.setContentType(mimeType);
** 이 코드가 없어서 발생하는 에러 **
objectMetadata.setContentLength(file.length());
//objectMetadata.setBucketKeyEnabled(true);
}
objectMetadata.setContentLength(file.length());
이 코드를 통하여 Content-Length를 지정해주면 경고를 제거할 수 있다.
참고)
https://docs.aws.amazon.com/codeguru/detector-library/java/s3-object-metadata-content-length-check/
Unchecked S3 object metadata content length | Amazon CodeGuru, Detector Library
Failure to specify a content length causes the contents of the input stream to buffer locally in memory in order to calculate its length. This can result in performance problems.
docs.aws.amazon.com
'ERROR FIX' 카테고리의 다른 글
Caused by: java.io.FileNotFoundException: class path resource 에러 (0) | 2023.11.11 |
---|---|
스프링 CORS 처리 (+스프링 클라우드 게이트웨이) (1) | 2023.11.05 |
NCP Content-Type 변경 (0) | 2023.08.17 |
[IntelliJ][SVN] is out of date svn: E160028 (0) | 2023.03.06 |
인텔리제이 톰캣 서버 설치와 연결 (0) | 2023.02.21 |
댓글