2012-07-08 2 views
4

최근에 내 첫 Django 앱을 Heroku에 배포했습니다. 내 마스터 프로젝트를위한 것이므로 확장 성은 큰 문제가 아닙니다. Heroku에서 직접 정적 및 미디어 파일을 제공 할 때 발생할 수있는 문제에 대해 읽었으며 Amazon S3가 최상의 솔루션입니다. 지금까지 정적 파일 인 CSS, JS가 Heroku에서 제대로 제공되고 있습니다.Django : Heroku에서 직접 정적, 미디어 fles 제공

그러나 미디어 파일은 약간 문제가 있습니다.

사용자가 업로드 할 수있는 미디어는 사진뿐입니다. 다시 말하지만,이 프로젝트는 규모가 작기 때문에 볼륨이 낮습니다. 현재 사진이 제대로 제공되고 있습니다. 그러나 업데이트가 Heroku에 푸시되면 기존의 업로드 된 사진에 대한 링크가 페이지에서 깨져서 다시 표시되도록 다시 업로드해야합니다. 이는 분명히 용납 될 수 없습니다.

나는이 아마존 S3 또는 발생이 다른 무언가로 외부 호스트에 의해 해결 될 수있는 미디어를 제공에 문제가 있는지 여부를 식별하기 위해 노력하고있어. 나는 호스팅 비용을 지불 할 의사가 없지만이 문제를 해결할 수 있다면 솔루션이 선택 될 가능성이 높습니다.

모든 통찰력이나 경험을 환영합니다. 소스 제어에 추가되지 않은 Heroku가 웹 다이노의 파일 시스템에 기록하고 "앱 부분"으로 간주되지 않기 때문에

+0

문제에 대한 좋은 설명입니다. –

답변

11

이것은 예상 된 동작입니다. 기본적으로 임시 파일을 제외하고는 파일 시스템에 대한 쓰기를 허용해서는 안됩니다.

이것은 응용 프로그램에 대한 업데이트를 푸시하면 파일이 사라질뿐만 아니라 문제가되는 경우도 있습니다. 또한 여러 웹 dynos (Heroku 앱에서 가장 일반적인 사용 사례)가있는 경우 파일은 업로드 된 웹 dyno에 도달 한 사용자에게만 표시됩니다.

이 솔루션은 사용자가 자신의 서버가 자동적으로 S3 자체로 다른 대상에 업로드 된 파일을 보내도록하기 위해 다른 다른 서버로 또는 S3에 직접 업로드하고 응용 프로그램에 대한 링크를 통과, 또는 가지고 중 하나입니다. 실제로 CSS와 같은 정적 자산은 S3에서 더 잘 제공되지만 때로는 실용적이며 때로는 그렇지 않습니다.

+0

이것은 훌륭한 대답입니다. 나는 S3로 바뀔 것이다. 그게 비싸지 않은 것 같아. 이는 또한 덤불 검색이 업데이트를 동기화 한 후에 결과가 전혀 표시되지 않는 이유와 관련이있을 수 있습니다.하지만 문제는 완전히 다른 것일 수 있습니다. 감사. –

관련 문제