1. 문제 상황
1-1 CORS 에러
- Postman에서
PUT {presigned url}
로 파일 업로드 테스트할 때는 문제 X - 프론트
localhost:5173
에서 테스트 하니 위 사진처럼 CORS 에러가 터짐
2. 해결 방법
2-1 S3 버킷 정책 확인
s3:PutObject
가 Allow 되어 있음을 확인 -> 문제 X2-2 버킷 - 권한 - CORS(Cross-origin 리소스 공유) 확인 ★★★★★
- 여기서 명시적으로 정의해주지 않아 CORS 에러가 터짐
- json 형식
[ { "AllowedHeaders": [ "*" ], "AllowedMethods": [ "GET", "PUT", "POST", "DELETE" ], "AllowedOrigins": [ "http://localhost:5173" ], "ExposeHeaders": [ "ETag" ], "MaxAgeSeconds": 3000 } ]
AllowedHeaders
: ["*"] → 모든 헤더를 허용AllowedMethods
: ["GET", "PUT", "POST", "DELETE"] → PUT 요청을 포함하여 허용AllowedOrigins
: ["http://localhost:5173"] → 프론트 로컬 개발 환경에서 업로드 요청을 허용ExposeHeaders
: ["ETag"] → 브라우저가 ETag를 읽을 수 있도록 허용MaxAgeSeconds
: 3000 → Preflight 요청 결과를 캐싱(최적화)
3. 참고
https://sezzled.tistory.com/213
https://blog.bbubbu.me/aws-s3-presigned-url-cors-error/
'mody' 카테고리의 다른 글
도메인 구매하여 Certbot을 통해 HTTPS 배포하기 (0) | 2025.03.09 |
---|---|
스프링에서 핀터레스트 이미지 크롤링하기 (0) | 2025.03.09 |
스프링에서 S3 이미지 삭제 deleteObject() 403 Access Denied - AWSCompromisedKeyQuarantineV3 정책 (0) | 2025.03.09 |
Spring Boot에서 OpenAI API 사용에 프롬프트 최적화하기 (0) | 2025.03.09 |
mody - 당신의 AI 스타일 친구 (0) | 2025.03.09 |