AWS S3에 이미지 및 정적 파일을 업로드하는 방법
AWS 콘솔에서 S3 생성
バケットを作成
클릭 バケット名
를 넣고 나중에는 기본 설정으로 バケットの作成
를 합니다. [
{
"AllowedHeaders": [
"*"
],
"AllowedMethods": [
"POST",
"GET",
"PUT"
],
"AllowedOrigins": [
"*"
]
}
]
AWS 콘솔에서 IAM 사용자 생성
다음으로 S3을 조작할 수 있는 권한을 가진 사용자를 만들기 위해 IAM을 사용합니다.
사용자 이름과 액세스 유형 모두에 ✔ 다음 단계로 이동합니다.
기존 정책을 직접 연결에서 S3
로 검색하여 AmazonS3FulAccess
를 선택합니다.
그런 다음 다음 단계로 계속 진행하여 사용자를 만듭니다.
그 때 ACCESS_ID
와 SECRET_KEY
(중요)가 나오므로 그것을 삼가해 주십시오.
주의를 기울이지 않으면 새 사용자를 다시 만들어야 합니다.
필요한 패키지 설치
$ pip install django-storages
$ pip install boto3
settings.py 설정
INSTALLED_APPS에 storages
를 추가합니다.
settings.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
# My apps
'blog',
'searches',
# aws
'storages', #追加します。
]
settings.py
의 맨 아래에서 작성한 S3 버킷의 설정을 작성합니다.
settings.py#S3 BUCKETS CONFIG
"""
AWS_ACCESS_KEY_ID = '***********' # Iamのuserid
AWS_SECRET_ACCESS_KEY = '**********' # Iamのuser key
AWS_STORAGE_BUCKET_NAME = 'renren-django-blog' #S3バケットの名前
AWS_S3_FILE_OVERWRITE = False #同じ名前のファイルを上書きするか?
AWS_DEFAULT_ACL = None #
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
STATICFILES_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
"""
보다 세밀한 설정에 대해서 보고 싶은 분은 공식 문서 를 봐 주세요.
실제로 S3에 업로드
표시되지 않는 경우 inspect 모드를 기동(windows이면 F12
) 해, 파일의 패스를 조사한다
python manage.py collectstatic으로 자동으로 아마존에 올려줍니다.
AWS_ACCESS_KEY_ID
이나 AWS_SECRET_ACCESS_KEY
등은 기밀 정보로서 .env
파일에 쓰기 그것을 참조하는 것이 추천됩니다. 아래 사이트를 참고로 설정해 주십시오.
참고 사이트: 【Django】 환경 변수를 효율적으로 관리하는 「django-environ」의 사용법
결론만 말하면 settings.py 파일이 다음과 같습니다.
setting.pyAWS_ACCESS_KEY_ID = env('AWS_ACCESS_KEY_ID')
AWS_SECRET_ACCESS_KEY = env('AWS_SECRET_ACCESS_KEY')
AWS_STORAGE_BUCKET_NAME = env('AWS_STORAGE_BUCKET_NAME')
AWS_S3_FILE_OVERWRITE = False
AWS_DEFAULT_ACL = None
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
STATICFILES_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
.envAWS_ACCESS_KEY_ID=***********
AWS_SECRET_ACCESS_KEY=**********
AWS_STORAGE_BUCKET_NAME=**************
S3 버킷에 업로드
python manage.py collectstatic
를 실행하면 현재 로컬 정적 폴더의 모든 파일이 S3에 업로드됩니다.
media 폴더에 이미지가 있는 경우 처음에만 수동으로 업로드해야 합니다.
참고
공식 문서
File Storage with AWS S3 Buckets Upload | Django (3.0) Crash Course Tutorials (pt 22)
Reference
이 문제에 관하여(AWS S3에 이미지 및 정적 파일을 업로드하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/juchilian/items/0ef520ce6c1ed849db04
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ pip install django-storages
$ pip install boto3
settings.py 설정
INSTALLED_APPS에 storages
를 추가합니다.
settings.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
# My apps
'blog',
'searches',
# aws
'storages', #追加します。
]
settings.py
의 맨 아래에서 작성한 S3 버킷의 설정을 작성합니다.
settings.py#S3 BUCKETS CONFIG
"""
AWS_ACCESS_KEY_ID = '***********' # Iamのuserid
AWS_SECRET_ACCESS_KEY = '**********' # Iamのuser key
AWS_STORAGE_BUCKET_NAME = 'renren-django-blog' #S3バケットの名前
AWS_S3_FILE_OVERWRITE = False #同じ名前のファイルを上書きするか?
AWS_DEFAULT_ACL = None #
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
STATICFILES_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
"""
보다 세밀한 설정에 대해서 보고 싶은 분은 공식 문서 를 봐 주세요.
실제로 S3에 업로드
표시되지 않는 경우 inspect 모드를 기동(windows이면 F12
) 해, 파일의 패스를 조사한다
python manage.py collectstatic으로 자동으로 아마존에 올려줍니다.
AWS_ACCESS_KEY_ID
이나 AWS_SECRET_ACCESS_KEY
등은 기밀 정보로서 .env
파일에 쓰기 그것을 참조하는 것이 추천됩니다. 아래 사이트를 참고로 설정해 주십시오.
참고 사이트: 【Django】 환경 변수를 효율적으로 관리하는 「django-environ」의 사용법
결론만 말하면 settings.py 파일이 다음과 같습니다.
setting.pyAWS_ACCESS_KEY_ID = env('AWS_ACCESS_KEY_ID')
AWS_SECRET_ACCESS_KEY = env('AWS_SECRET_ACCESS_KEY')
AWS_STORAGE_BUCKET_NAME = env('AWS_STORAGE_BUCKET_NAME')
AWS_S3_FILE_OVERWRITE = False
AWS_DEFAULT_ACL = None
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
STATICFILES_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
.envAWS_ACCESS_KEY_ID=***********
AWS_SECRET_ACCESS_KEY=**********
AWS_STORAGE_BUCKET_NAME=**************
S3 버킷에 업로드
python manage.py collectstatic
를 실행하면 현재 로컬 정적 폴더의 모든 파일이 S3에 업로드됩니다.
media 폴더에 이미지가 있는 경우 처음에만 수동으로 업로드해야 합니다.
참고
공식 문서
File Storage with AWS S3 Buckets Upload | Django (3.0) Crash Course Tutorials (pt 22)
Reference
이 문제에 관하여(AWS S3에 이미지 및 정적 파일을 업로드하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/juchilian/items/0ef520ce6c1ed849db04
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
# My apps
'blog',
'searches',
# aws
'storages', #追加します。
]
#S3 BUCKETS CONFIG
"""
AWS_ACCESS_KEY_ID = '***********' # Iamのuserid
AWS_SECRET_ACCESS_KEY = '**********' # Iamのuser key
AWS_STORAGE_BUCKET_NAME = 'renren-django-blog' #S3バケットの名前
AWS_S3_FILE_OVERWRITE = False #同じ名前のファイルを上書きするか?
AWS_DEFAULT_ACL = None #
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
STATICFILES_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
"""
AWS_ACCESS_KEY_ID = env('AWS_ACCESS_KEY_ID')
AWS_SECRET_ACCESS_KEY = env('AWS_SECRET_ACCESS_KEY')
AWS_STORAGE_BUCKET_NAME = env('AWS_STORAGE_BUCKET_NAME')
AWS_S3_FILE_OVERWRITE = False
AWS_DEFAULT_ACL = None
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
STATICFILES_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
AWS_ACCESS_KEY_ID=***********
AWS_SECRET_ACCESS_KEY=**********
AWS_STORAGE_BUCKET_NAME=**************
python manage.py collectstatic
를 실행하면 현재 로컬 정적 폴더의 모든 파일이 S3에 업로드됩니다.media 폴더에 이미지가 있는 경우 처음에만 수동으로 업로드해야 합니다.
참고
공식 문서
File Storage with AWS S3 Buckets Upload | Django (3.0) Crash Course Tutorials (pt 22)
Reference
이 문제에 관하여(AWS S3에 이미지 및 정적 파일을 업로드하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/juchilian/items/0ef520ce6c1ed849db04
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(AWS S3에 이미지 및 정적 파일을 업로드하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/juchilian/items/0ef520ce6c1ed849db04텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)