홈페이지를 제작하는 과정에서 사진을 업로드 해야하는 기능이 필요했습니다.
호스팅을 aws를 통해서 하고 있고 s3를 이용해서 사진을 업로드하고 관리하기로 했습니다.
django를 이용해서 웹사이트를 구성하고 있습니다.
import boto3
def post_image(request):
if request.method == 'POST':
if len(request.FILES) != 0:
s3_client = boto3.client(
's3',
aws_access_key_id=AWS_ACCESS_KEY_ID,
aws_secret_access_key=AWS_SECRET_ACCESS_KEY,
)
file = request.FILES['myfile']
s3_client.upload_fileobj(
file,
"bucket-name",
"file-name",
ExtraArgs={
"ContentType": file.content_type,
}
)
return JsonResponse({'message':'success'})
else:
return JsonResponse({'message':'file_none'})
def delete_image(request):
if request.method == 'POST':
image_id = request.POST.get('image_id', '')
image = get_object_or_404(Letter_Image, id = image_id)
s3_client = boto3.client(
's3',
aws_access_key_id=AWS_ACCESS_KEY_ID,
aws_secret_access_key=AWS_SECRET_ACCESS_KEY,
)
key = "image-name"
s3_client.delete_object(Bucket='bucket-name', Key=key)
image.delete()
return JsonResponse({'message':'delete'})
return JsonResponse({'message':'not POST'})
파일 업로드 및 삭제 기능으로 더욱 홈페이지를 다양하게 구성할 수 있답니다.
혹시라도 어려운점 혹은 궁금한점이 있으시다면! 댓글 남겨주세용
추가로 틀린 부분이나 더 나은 코딩 방향이 생각나신다면 알려주시면 감사하겠습니다!