- 이를 DATABASE UTF-8 설정 문제로 (https://mooooburg-dev.github.io/posts/aws-rds-parameter-group/)를 참조하면 된다
- *을 통해 모든 사용자들에게 Allow한다. 이때 Action은 s3에서 Object를 가져오는 것이고, 해당 s3는 ljh-storage로 설정한다
문자열 ' '로 입력한다
- ACCESS KEY ID : IAM 사용자의 ACCESS KEY ID 입력
- SECRET ACCESS KEY : IAM 사용자의 SECRET ACCESS KEY 입력
- REGION : 지역
- BUCKET NAME : S3 BUCKET 이름
이제 media와 static Directory를 S3의 경로로 지정해야한다
기존 static과 media를 지우고 S3로 경로를 새로 지정한다
기존 MEDIA_ROOT 대신 DEFAULT_FILE_STORAGE로 지정한다
STATICFILES_DIRS를 통해 보이지 않는 곳에 저장된 Static 파일들을 가져와 지정한 경로에 저장한다
이때, 웹 서버 상에서는 S3의 STORAGE를 통해 STATIC/MEDIA 파일들을 가져오고, 저장한다
현재, 위의 코드를 작성하면 static과 media storage가 겹쳐서 error가 난다. 이는 밑에서 다루겠다
boto3를 설치해준다 ( AWS에서 제공해주는 SDK )
django-storages를 설치해준다. Django storage api는 local 파일 시스템만 지원하는데 다른 storage를 사용하려면 추가해야한다
collectstatic을 통해 S3에 static 파일들을 모아준다. 이 명령어는 Static 파일들을 settings.py 파일 안에 정의되어 있는 STATIC_ROOT 디렉토리로 옮기는 작업을 수행한다
만약 잘 안된다면, AWS_DEFAULT_ACL을 None으로 한 번 collect 해주고, 다시 public-read로 collect 해보자
S3에 잘 업로드 됬다
MEDIA_ROOT를 삭제했으므로, URL을 수정한다
위 부분을 삭제해준다
MEDIA STORAGE가 생성되어 업로드한 IMG 파일이 잘 저장되는 것을 확인할 수 있다