Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- BFS
- 계산기 만들기
- 코딩테스트
- 구현
- 누적합
- 이분 탐색
- Algorithm
- 알고리즘
- Java
- ES
- Generics
- Spring
- 해시
- 내일배움캠프
- 이분탐색
- 객체지향
- Baekjoon
- til
- 브루트포스
- Elasticsearch
- binary search
- querydsl
- 프로그래머스
- programmers
- 일정 관리
- SpringBoot
- parametric search
- 백준
- 완전탐색
- File
Archives
- Today
- Total
개발하는 햄팡이
[Spring][AWS-S3]The bucket does not allow ACLs (Service: Amazon S3; Status Code: 400; Error Code: AccessControlListNotSupported 본문
카테고리 없음
[Spring][AWS-S3]The bucket does not allow ACLs (Service: Amazon S3; Status Code: 400; Error Code: AccessControlListNotSupported
hampangee 2025. 7. 30. 12:17문제 상황
우리 프로젝트는 파일을 하나하나 권한을 설정하는 ACL방식을 사용하여 객체를 관리하고 있다..
/**
* 파일을 S3에 업로드합니다. 필요에 따라 공개 설정이 가능합니다.
*
* @param file 업로드할 파일
* @param hash 파일 해시 (경로 구성에 사용)
* @param isPublic true일 경우 공개 접근(PublicRead) 설정
* @throws IOException 업로드 중 오류 발생 시
*/
private void uploadToS3(MultipartFile file, String hash, boolean isPublic) throws IOException {
ObjectMetadata metadata = new ObjectMetadata();
metadata.setContentType(file.getContentType());
metadata.setContentLength(file.getSize());
PutObjectRequest request = new PutObjectRequest(
bucket,
getTargetPath(hash),
file.getInputStream(),
metadata
);
// 공개 파일 일경우 PublicRead 설정(이미지)
if (isPublic) {
request.withCannedAcl(CannedAccessControlList.PublicRead);
}
awsS3ClientProviderForAttachment.getS3Client().putObject(request);
}
그런데 이미지 파일을 업로드 하기 위해 isPublic을 true로 하고 요청을 보냈는데 아래와 같은 오류메세지가 떴다.
(뒷 부분은 개인정보라서 자름)
맨첨부터 ACL로 하려고 퍼블릭 액세스 차단 설정에서 모두 해제를 해놨는데 ▼
차단되었다는 문구가 떴다.
해결방안
이거 외에도 객체 소유권 ACL을 활성화 해야한다.
그래야 다른 사람들이 public으로 조회할 수 있는 권한이 생김.