<개요>
이전글
https://icthuman.tistory.com/entry/AWS-Java-SDK-S3-File-upload
<내용>
- 기존 버전에서는 ObjectMetadata를 null로 처리하였으나 추가요건을 처리하다보니 개선해야 할 부분이 있었습니다.
- CacheControl, ContentType
1. CacheControl
- 해당 파일을 이용하여 서비스할 경우 CacheControl 속성으로 max-age값을 주어서 캐시를 활용할 수 있습니다.
2. ContentType
- contentType을 지정하지 않을 경우 file upload시 octet-stream으로 동작하여 특정 이미지포멧의 경우 에러가 발생하는 경우를 볼수 있습니다.
그 외에도 필요에 따라서 추가할 수 있는 값들을 AWS Document에 따라서 적절하게 사용하면 됩니다.
public FileDto upload(MultipartFile file, String prefix) throws IOException {
SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss");
String fileName = prefix +"-"+date.format(new Date())+"-"+file.getOriginalFilename();
String s3location = bucket +"/"+ prefix;
ObjectMetadata objectMetadata = new ObjectMetadata();
objectMetadata.setCacheControl(cacheControl);
objectMetadata.setContentType(file.getContentType());
amazonS3.putObject(new PutObjectRequest(s3location, fileName, file.getInputStream(), objectMetadata));
FileDto fileDto = new FileDto();
fileDto.setS3Location(amazonS3.getUrl(s3location,fileName).toString());
fileDto.setS3Key(fileCategory.toString() +"/" + fileName);
return fileDto;
}
<참조>
https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/userguide/UsingMetadata.html#object-key-guidelines
'AWS Architecture' 카테고리의 다른 글
AWS Cognito (2) - JWT Token(JWT/JWS) Verify with Spring (0) | 2023.03.10 |
---|---|
AWS Cognito (1) - 사용자관리/OAuth 2.0 (0) | 2023.03.03 |
AWS Java SDK - S3 File upload #1 (0) | 2022.05.19 |
AWS S3-Athena 사용중 JDBC Driver동시성 문제 #2 (0) | 2021.11.04 |
AWS SDK for Java (CloudWatchLogsAsyncClient 사용법) (0) | 2021.07.15 |