안녕하세요 장고로 개인 이미지 사이트를 만들어보려고 하는 사람입니다 궁금한게 생겨서 여기다

 
전재혁

안녕하세요
장고로 개인 이미지 사이트를 만들어보려고 하는 사람입니다
궁금한게 생겨서 여기다 묻습니다…ㅜㅜ
1. models.py를 짜다가 이미지를 업로드할때 이미지 후처리에 대해 생각하고 있습니다. 떠오르는 방법 세가지는
1) 후처리 javascript를 주고 이미지를 클라이언트 브라우저에서 해결한 후에 받아온다
2) override된 save에 이미지 후처리 코드를 집어넣는다
3) 일단 후처리 없이 save를 진행하고, 후처리 코드를 따로 짜서 cron(이나 다른 라이브러리)을 걸어 처리하게 스케쥴한다.
입니다. 어느편이 좋나요?
2. MEDIA_URL이랑 STATIC_URL을 지정을 해뒀는데 클라이언트에서 직접 주소따고 들어가보니 들어가지는데… 직접적인 주소로는 들어가지 못하도록 설정할 수 있을까요?
예를들어, http://example.or.kr/에 접속하면 페이지에서 /media/hello.png 이미지를 불러와서 렌더링을 하는데, 이용자가 직접 주소줄에 저 주소(http://example.or.kr/media/hello.png)를 넣게 되거나 외부에서 링크를 따갈때는 없는 파일이라고 뜨게 할 방법이 있을까요?

  • Chinseok Lee

    1. 해당 이미지 후처리가 서버에 그리 부담이 안 된다면, 업로드 시에 같이 처리해줘도 좋을 듯 합니다.

    2. 쉬운 처리로는 서빙하는 웹서버에서 Referer 헤더를 체크하는 방식으로 할 수 있겠습니다. 네이버 웹툰이 그렇게 처리하고 있을 겁니다. 혹은 AWS S3 처럼 Signed URL 을 써보실 수도 있겠죠.
    https://docs.aws.amazon.com/ko_kr/AmazonCloudFront/latest/DeveloperGuide/private-content-signed-urls.html

    권재원

    이미지 가공은 무조건 서버에서 진행하세요. 클라이언트 단에서 해결하는건 좋은 방법은 아니예요. 이미지 해상도가 클라이언트 환경에 따라 천차만별로 달라지게 됩니다. 서버에서 진행시에는 PIL 라이브러리 쓰면 쉽게 할 수 있습니다.

Advertisements