Backend/Django

[Django] yolov5 결과 로컬에 저장하지 않고 바로 s3에 저장하기

lim.dev 2022. 8. 4. 01:30

- 이미지 변환

RGB_img = cv2.cvtColor(results.imgs[0], cv2.COLOR_RGB2BGR) #첫번째 이미지만!
encode_param = [int(cv2.IMWRITE_JPEG_QUALITY), 100]
success, a_numpy = cv2.imencode('.jpg', RGB_img, encode_param)
image = a_numpy.tostring()
image_url = get_img_url(image)

- s3에 저장

def get_img_url(img):
    s3_client = boto3.client(
        's3',
        aws_access_key_id=AWS_ACCESS_KEY_ID,
        aws_secret_access_key=AWS_SECRET_ACCESS_KEY
    )
    image = img
    image_type = "jpg"
    image_uuid = str(uuid4())
    s3_client.put_object(Body=image, Bucket='image-bucket2', Key=image_uuid + "." + image_type)
    image_url = "http://image-bucket2.s3.ap-northeast-2.amazonaws.com/" + \
                image_uuid + "." + image_type
    image_url = image_url.replace(" ", "/")
    return image_url

 

s3 업로드 참고..!!

https://security-guide.tistory.com/84