택시짱의 개발 노트

django media를 S3에 public으로 올리는 방법 본문

aws

django media를 S3에 public으로 올리는 방법

택시짱 2021. 7. 14. 23:06

먼저 S3Boto3Storage를 상속 받아 class 생성

video/storage.py

from sotrages.backends.s3boto3 import S3Boto3Storage

class MediaStorage(S3Boto3Storage):
    # base bucket location
    location = 'media/marketing/'

    # access authority
    default_acl = 'public-read'

 

생성한 MediaStorage를 storage에 대입

models/video.py

from django.db import models
from video.storage ipmort MediaStorage


class Video(models.Model):
    source = models.FileField(upload_to='source', storage=MediaStorage)
    thumbnail = models.ImageField(upload_to='thumbnail', storage=MediaStorage)
  • 기본적으로 settings에서 AWS에 대한 설정이 완료 된 후 S3Boto3Storage를 상속 받아 MediaStorage class를 생성하여 field를 원하는 대로 재정의 하여 django model 의 storage에 지정하면 됩니다.
  • Django Storage 공식 문서
반응형
Comments