안녕하세요!
아침부터 해결되지 않아 이렇게 질문을 드립니다.
현재 AWS S3 버킷에 이미지를 업로드할 수 있는 API를 개발하고 있는데요
이상한게 이미지 파일용량이 1MB만 넘어가도 9초 ~ 30초 이런식으로 업로드 시간이 걸리고 있습니다.
서버 환경은 Spring 4.1.7 + JAVA8 + Tomcat7.0.64 + Maven 기반이고, Spring boot는 사용하고 있지 않습니다.
서버는 AWS EC2가 아닌 IDC에 입고되어있고, 로컬에서 테스트할때도 동일하게 느린걸로 봐서는 프로젝트 자체문제인듯 한데 원인을 모르겠습니다..
지금 아래처럼 구성하였는데요,
maven
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-s3</artifactId>
<version>1.10.32</version>
</dependency>AWS S3 초기화
AWSCredentials credentials = new BasicAWSCredentials(accessKey, secretKey);
ClientConfiguration clientConfig = new ClientConfiguration();
clientConfig.setProtocol(Protocol.HTTP);
this.amazonS3Client = new AmazonS3Client(credentials, clientConfig);
// this.amazonS3Client.setEndpoint("ap-northeast-1.amazonaws.com");
this.amazonS3Client.setRegion(Region.getRegion(Regions.fromName(region)));AWS S3 업로드
private PutObjectResult upload(InputStream inputStream, String uploadKey, ObjectMetadata metadata) {
PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, uploadKey, inputStream, metadata);
putObjectRequest.setCannedAcl(CannedAccessControlList.PublicRead);
PutObjectResult putObjectResult = amazonS3Client.putObject(putObjectRequest);
IOUtils.closeQuietly(inputStream);
return putObjectResult;
}이부분(실제 업로드 코드)에서 속도가 급격히 떨어지고 있습니다.
PutObjectResult putObjectResult = amazonS3Client.putObject(putObjectRequest);Parameter
putObjectResults.resultData.add(upload(multipartFile.getInputStream(), tempName, metadata));톰캣 설정 문제일까요? S3 콘솔에서 직접 업로드 하면 동일한 16MB 파일이 1초면 올라갑니다.
문제점을 도저히 못찾아서 이렇게 질문드려봅니다
혹시 스프링에서 S3 에 파일 업로드할때 추가적으로 설정을 잡아줘야 하는게 있는지요?
조언 부탁드리겠습니다(__)
웹에서 이 토론을 보려면 https://groups.google.com/d/msgid/ksug/0fadef6f-4442-4dde-be9d-d2ca1b8e9b1d%40googlegroups.com을(를) 방문하세요.--
이 메일은 Google 그룹스 'Korea Spring User Group Q&A' 그룹에 가입한 분들에게 전송되는 메시지입니다.
이 그룹에서 탈퇴하고 더 이상 이메일을 받지 않으려면 ksug+uns...@googlegroups.com에 이메일을 보내세요.
http://groups.google.com/group/ksug에서 이 그룹을 방문하세요.