본문 바로가기
AWS/S3

[AWS S3] 개발했던 Spring Framework S3 개발소스

by 설총이 2023. 7. 25.
SpringFramework S3 개발소스
공통 Util인 FileUtil.java 에 static 변수로 선언

 

AmazonS3 오브젝트 스토리지 객체 반환

 

S3 파일업로드 > objectMetaData 반환 ( 반복된 호출로 메소드로 분리했습니다. )

 

S3 버킷 > 폴더생성
(참고) 폴더 생성시에는 반드시 디렉토리경로 마지막에 “/” 로 잡아주어야 생성됩니다.

 

S3 파일 업로드

 

S3 BufferdImage객체 업로드

 

S3 SXSSWorkbook 객체 업로드

 

S3 파일복사 (copyObject)

 

S3 파일삭제 (deleteObject)

S3 파일 조회 (getObject)

 

S3 다운로드 ( getObject > InputStream 연결 )

 

S3 파일리스트 조회 (listObjects)

 

S3 파일 유무 (doesObjectExist)

 

- 개발 도중 발생했던 Aws s3 에러 히스토리 작성

1. com.amazonaws.SdkClientException: Unable to execute HTTP request: storage.gscdn.com
==> 인프라팀에서 해당 WAS서버에 호스트정보등록을 안한것으로 인프라팀에게 등록요청할 것.
==> 에러 주변로그 검색하면 Caused by: java.net.UnknownHostException: storage.gscdn.com: 이름 혹은 서비스를 알 수 없습니다 와 같은 에러 확인가능.

2. com.amazonaws.services.s3.model.AmazonS3Exception: Please reduce your request rate.  
(Service: Amazon S3; Status Code: 503; Error Code: ServiceUnavailable; Request ID: txd1bb6676bff5432fb7157-006475a89f; S3 Extended Request ID: null)
==> 잦은요청으로 인한 에러인줄 알았는데, 파일을 못읽어서 나는 에러. ( com.amazonaws.SdkClientException: Unable to calculate MD5 hash: ***********.jpg )

3. com.amazonaws.SdkClientException: Unable to verify integrity of data download. Client calculated content hash didn't match hash calculated by Amazon S3. The data may be corrupt.
MD5에러가 발생해 
System.setProperty(SkipMd5CheckStrategy.DISABLE_GET_OBJECT_MD5_VALIDATION_PROPERTY,"true"); 추가해보고
.withRetryPolicy도 추가해보고
.withChunkedEncodingDisabled(true)도 추가해보고
.withChunkedEncodingDisabled 추가해보았으나
===> finally구문에서 s3Client.shutDown()을 지우니 발생을 안해서 주석처리하였음.
===> (추가해결) 주석처리해도 계속적으로 종종 발생해 원인을 해결하고싶어 추가 확인한내용
S3스토리지 접근할때마다 .build()를 선언하다보니 발생하는것으로 추측되어 static getInstance()로 최초 한번실행하고 그후엔 가져와쓰는것으로 변경 후 발생하지 않았음. 

 

'AWS > S3' 카테고리의 다른 글

[AWS S3] S3 API 개발가이드  (0) 2023.07.25
[AWS S3] Maven Dependency pom.xml  (0) 2023.07.25