django-storages를 활용하여 사용자가 업로드하는 파일들을 S3를 통해 serving 할 수 있습니다.


django-storages github url : https://github.com/jschneier/django-storages


django-storages doc : https://django-storages.readthedocs.org






1. install 


pip install django-storages 


오늘 기준으로 1.5.0 버전이 최신이네요.




2. settings.py

 


INSTALLED_APPS=[  .....,  'storages' ]

## 설치한 패키지를 추가해주고요. 

 

 


# MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

# MEDIA_URL = '/media/'



AWS_S3_HOST = 's3.ap-northeast-2.amazonaws.com'

AWS_QUERYSTRING_AUTH = False

AWS_ACCESS_KEY_ID = '...'

AWS_SECRET_ACCESS_KEY = '....'

AWS_STORAGE_BUCKET_NAME = '....'


DEFAULT_FILE_STORAGE = "storages.backends.s3boto.S3BotoStorage"

MEDIA_URL = 'http://%s.s3.amazonaws.com/' % AWS_STORAGE_BUCKET_NAME


#설정설정 :)


AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY  

요건 IAM 에서 사용자를 하나 추가해서 받으세요 :)



3. S3 설정


- bucket을 하나 만들어주세요.

- bucket에 properties에 들어가서 permission을 아래와 같이 추가해주세요.

  노란색을 참고해서 !!  permission 설정 !!


   


 위 그림에서 빨간색으로 표시한 부분!! Edit bucket policy에는 아래 그림을 참고해서 추가해주세요.


   


{

"Version": "2008-10-17",

"Statement": [

{

"Effect": "Allow",

"Principal": {

"AWS": "*"

},

"Action": "s3:*",

"Resource": [

"arn:aws:s3:::bucketname/*",

"arn:aws:s3:::bucketname"

]

}

]

}








+ Recent posts