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 |