본문 바로가기
백엔드(Back-End)/Spring

[AWS S3, Spring] - AmazonS3Exception : The bucket does not allow ACLs 원인 & 문제 해결

by TwoJun 2024. 4. 25.

AmazonS3Exception: The bucket does not allow ACLs

 

프로젝트 진행 도중 발생한 문제에 대해 해결한 과정을 적어두고자 한다.

 

현재 만드는 서비스에서 회원가입 진행 시, 프로필 이미지를 선택적으로 업로드할 수 있는 요구사항이 있었는데 이를 위해 AWS S3 Bucket에 사진 파일을 업로드하는 과정을 테스트하는 도중 위와 같은 AmazonS3Exception 예외가 발생했다. 이 부분에 대한 원인, 해결했던 방법을 기록해 두고자 한다.

 

 

 

 

1. 문제 원인

ACL(Access Control List)

 

(1) 현재 버킷 소유자만 Bucket Access Control List(ACL)에 대한 Read, Write(읽기, 쓰기) 권한이 설정되어 있는 것을 확인할 수 있다. 아마 이 부분 때문에 문제가 발생한 것으로 보인다.

 

 

 

 

 

 

2. 해결 과정

객체 소유권 정보

(1) 객체 소유권에서 [편집]으로 들어가서 해당 부분을 수정해 보자.

 

 

 

 

2-1. ACL 활성화 진행

객체 소유권 페이지에서 ACL 활성화 진행

(1) ACL을 활성화하고, ACL이 복원된다는 부분도 체크해 준 후 하단의 변경사항 저장 버튼을 클릭해 수정 사항을 반영한다.

 

 

 

(2) 소유권 편집 완료 메시지를 확인했다면 개발 환경에서 업로드 부분을 다시 테스트해 보자.

 

 

 

 

 

 

3. 이미지 업로드 테스트 진행 

Postman에서 테스트 진행

 

(1) request 필드에 회원가입에 필요한 사용자 정보와, image 필드에 multipart/form-data 형식으로 이미지를 요청 바디에 넣고 API 테스트를 다시 진행해 봤다.

 

 

 

이미지 정상 업로드 확인

(2) 요청을 보낸 후 정상 응답이 반환되었으며, 프로필 이미지가 정상적으로 업로드된 것을 확인할 수 있었다.

 

 

 

AWS S3 Bucket

(3) AWS S3 Bucket에 접속해서 업로드한 사진이 정상적으로 버킷에도 올라온 부분을 확인했다.

 

 

 

 

 

 

 

※ 해당 포스팅에 대해 내용 추가가 필요하다고 생각되면 기존 포스팅 내용에 다른 내용이 추가될 수 있습니다.

개인적으로 공부하며 정리한 내용이기에 오타나 틀린 부분이 있을 수 있으며, 이에 대해 댓글로 알려주시면 감사하겠습니다!

댓글