[20Studio, Django] AWS S3 파일 업로드 및 삭제 하기

tiki·2021년 2월 27일
3
post-thumbnail

홈페이지를 제작하는 과정에서 사진을 업로드 해야하는 기능이 필요했습니다.
호스팅을 aws를 통해서 하고 있고 s3를 이용해서 사진을 업로드하고 관리하기로 했습니다.

django를 이용해서 웹사이트를 구성하고 있습니다.

boto3를 이용하여 aws s3에 파일 업로드하기

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'})

boto3를 이용하여 aws s3에 파일 삭제하기


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'})
    

파일 업로드 및 삭제 기능으로 더욱 홈페이지를 다양하게 구성할 수 있답니다.

혹시라도 어려운점 혹은 궁금한점이 있으시다면! 댓글 남겨주세용

추가로 틀린 부분이나 더 나은 코딩 방향이 생각나신다면 알려주시면 감사하겠습니다!

profile
하루하루 조금씩 발전하려는 개발자 입니다.

0개의 댓글