반응형
Django Framework을 사용한다면 settings.py를
수정해줘야 하고, 파이썬에서 S3 버킷으로 이미지를
바로 업로드한다면 싱글 소스코드로도 충분하다.
1. Django models.py 수정
FileField를 수정한다.
models.py를 수정하고, makemigrations + migrate 명령으로
DB 수정사항을 반영해준다.
1
2
3
4
|
class Image(moels.Model):
name=models.CharField(max_length=30)
picture = models.FileField(upload_to='media'/)
|
cs |
2. django-storage 모듈 설치
AWS S3에 이미지를 저장하기 위해서는 먼저
Django에서 django-storage 모듈을 설치해줘야 한다.
Django에 django-storage 모듈을 설치하기 위해서는
boto3 부터 설치해준다.
1
2
3
|
pip install boto3
pip install django-storage
|
cs |
3. Django settings.py 설정
S3를 사용하기 위해서는 Django에서 추가적인
셋팅이 필요하다. 대표적으로 4가지 셋팅이 필요하다.
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
AWS_STORAGE_BUCKET_NAME
AWS_QUERYSTRING_AUTH = False
4. S3 생성 및 설정
S3 버킷을 생성한 후 권한 설정이 필요하다.
나의 경우 로컬에서 접속이 가능해야 하고,
서버에서도 접속이 가능한 S3를 만들고자 했기 때문에,
퍼블릭 액세스를 모두 허용했다.
다음으로 버킷 정책을 새로 생성해준다.
5. 파이썬 코드 작성
S3에 이미지를 업로드하기 위한 간단한
파이썬 코드다.
download.jpg 파일을 열어서 s3 boto3를
설정해준다. 마지막으로 put_object 함수를
사용해서 S3에 이미지를 업로드한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
import boto3
from botocore.client import Config
ACCESS_KEY_ID=''
ACCESS_SECRET_KEY=''
BUCKET_NAME=''
try:
data=open('download.jpg', 'rb')
s3=boto3.resource(
's3',
aws_access_key_id=ACCESS_KEY_ID,
aws_secret_access_key=ACCESS_SECRET_KEY,
config=Config(signature_version='s3v4')
)
s3.Bucket(BUCKET_NAME).put_object(Key='download.jpg', Body=data, ContentType='image/jpg')
except e as Exception:
print(e)
print("Done")
|
cs |
S3 버킷에서 업로드한 파일을 바로 확인할 수 있다.
반응형
'Programming' 카테고리의 다른 글
우분투 터미널 환경에서 디스크 용량 확인하는 방법 (0) | 2022.01.18 |
---|---|
웹 애플리케이션에 SSL 무료발급 하는 방법 및 Nginx 서버에 적용하는 방법 Nginx , AWS 서버 구성 (0) | 2022.01.18 |
AWS 서버에서 Crontab 작업하는 방법 ubuntu crontab scheduler 사용 (0) | 2022.01.18 |
AWS에 크롬드라이버 설치 selenium 돌리기 (0) | 2022.01.18 |
웹 애플리케이션 서버 생성 및 배포하기 Nginx uWSGI unix socket django python AWS ubuntu server (0) | 2022.01.17 |
Django AWS 배포하기 4 (0) | 2022.01.16 |
댓글