1. Content Type
- 파일명에 따라 ContentType을 설정한다.
ObjectMetadata objMeta = new ObjectMetadata();
objMeta.setContentType(Mimetypes.getInstance().getMimetype(saveFileNm));
2. Content Length
- byte length를 추가한다.
ObjectMetadata objMeta = new ObjectMetadata();
byte[] bytes = IOUtils.toByteArray(targetIS);
objMeta.setContentLength(bytes.length);
ByteArrayInputStream byteArrayIs = new ByteArrayInputStream(bytes);
PutObjectRequest putObjReq = new PutObjectRequest(bucketName, key, byteArrayIs, objMeta);
s3client.putObject(putObjReq);
- 해당 소스처리를 안할 경우 아래와 같은 warning 메시지가 뜬다.
[WARN ] c.a.services.s3.AmazonS3Client:1714 - No content length specified for stream data. Stream contents will be buffered in memory and could result in out of memory errors.
3. 임시파일로 업로드
- 서버 내 파일을 저장하지않고, 바로 S3에 업로드할 때 사용하면 좋다.
File file = File.createTempFile("test", ".txt");
file.deleteOnExit();
'프로그래밍 > JAVA' 카테고리의 다른 글
[LOMBOK] constructor ... is already defined in class ... (1.16.22) (0) | 2018.06.27 |
---|---|
json schema validator 사용하기 - 02 (0) | 2018.05.23 |
AmazonS3Client, deprecated!!! (0) | 2018.05.21 |
json schema validator 사용하기 - 01 (0) | 2018.04.18 |
시스템 종료 후 File 삭제 (0) | 2018.04.12 |