S3를 연동하는 과정에서 발생한 에러를 정리했다.
.env 파일에 S3에서 발급받은 AccessKey와 SecretKey를 아래와 같이 작성했으며,
[.env]
S3_ACCESSKEY= 비밀
S3_SECRETKEY= 비밀
application.yml파일에 S3의 환경변수 설정을 해주었다.
cloud:
aws:
credentials:
accessKey: ${S3_ACCESSKEY}
secretKey: ${S3_SECRETKEY}
s3:
bucket: techeer-carrot
region:
static: ap-northeast-2
stack:
auto: false
그러고나서 실행을 해보니 S3버켓을 연동하는 과정에서 아래와 같은 에러가 발생했다.
2023-04-09 18:42:32.981 ERROR 4229 --- [ main]
o.s.boot.SpringApplication : Application run failed
java.lang.IllegalArgumentException:
Could not resolve placeholder 'S3_ACCESSKEY' in value "${S3_ACCESSKEY}"
원인)
.env에서 작성한 key들이 application.yml에 읽히지 않았다.
해결방안) Intellij에 있는 Edit Configuration에서 S3의 환경변수를 입력해준다.
Edit Configurations 에 들어간다.
위 화면에서 Modify options를 누른다.
Environment variables를 누른다.
여기서 + 버튼을 누르고 S3의 key값들을 추가해준다.
Edit Configuration
에 환경변수를 설정했을 때의 장점.env에 환경변수를 작성하지 않아도 실행
된다. 이렇게 했을 때의 장점은 만약 env파일을 gitIgnore파일에 작성하지 않은 상태에서 git에 올린다 했을 때 보안상 노출될 위험이 없다.