2014-07-08 2 views
4

나는 클라이언트를 위해 Apphook을 통해 Aldryn Blog를 사용하는 Django CMS 프로젝트를 개발 중입니다. 헤로 쿠에 배치하려고합니다. Heroku의 임시 파일 시스템으로 인해 미디어는 외부에서 호스팅되어야합니다. 현재 유일한 미디어는 Django CMS Picture 플러그인 (표준 ImageField 사용)과 Aldryn 블로그 게시물 (FilerImageField 및 easy_thumbnails 사용)로 구성됩니다.Heroku, Boto 또는 Cloudny의 Django 미디어

새 DEFAULT_FILE_STORAGE (및 THUMBNAIL_DEFAULT_STORAGE)를 설정하는 것처럼 간단한 것처럼 보이는 S3에 저장하기 위해 Boto를 사용하는 방법에 대해 읽었습니다. 이것은 훌륭한 솔루션 인 것처럼 보이지만 다른 모든 것들 (웹 서버, 검색 엔진, 데이터베이스)은 Heroku와 그 애드온들에 의해 제공됩니다. 클라이언트가 사인 오프하면 Heroku 소유권을 이전하기 만하면됩니다.

이것은 내가 Cloudfin을 Heroku 애드온으로 사용하도록 유도했지만, 나는 통합에 대해 혼란 스럽다. 단순히 DEFAULT_FILE_STORAGE를 변경하는 대신 ImageFields 및 FileImageFields를 CloudinaryFields로 변경하고 Filer 및 easy_thumbnail 기능을 잃어 버리거나 (또는 ​​어쨌든 원숭이 패치를 강요해야합니까?)

내가 Boto를 선택하고 클라이언트 신용 카드가 Heroku와 S3 모두에 들어가거나 Cloudine을 선택하고 거친 통합을 처리하는 것처럼 보입니다. 더 나은 해결책이 없습니까?

답변

2

더 나은 솔루션이 누락 된 것은 아닙니다. Heroku의 문제는 몇 MB보다 큰 파일을 업로드하려는 경우 - 더 중요한 것은 잠재적으로 느린 연결을 통해이를 수행하기를 원한다 - 장고는 처음으로 파일을 받아들이 기 때문에 힘든 시간 초과를 치게 될 것입니다. 양식에 게시 된 다음 Heroku dyno를 통해 클라우드 스토리지 공급자에게 업로드했습니다.

보통 클라이언트를 AWS 계정으로 설정하여 S3 및 CloudFront을 얻은 다음 s3direct을 사용하도록 권합니다. 이는 불행하게도 ImageField 및 기타 잠재적으로 큰 FileFieldS3DirectField으로 변경하여 전체 URL을 파일 (S3 또는 CloudFront에 있음)에 저장합니다. 그러면 모델 관리자에게 각 필드에 대해 AJAX 사용 업 로더를 제공합니다. 모든 이미지가 업로드 된 후 "제출"을 누르는 한 훌륭합니다.

나는 그것을 업로드하는 데 약간의 시간이 걸리는 파일을 처리해야하므로 본인의 팟 캐스트 네트워크 사이트에서 사용합니다. S3Direct를 조정할 수 있습니다. 즉, settings.py 파일에서 수행하는 필드 당 원하는 파일 유형 만 받아 들일 수 있습니다. 그러나 꽤 잘 작동하고 사용자에게 진행률 표시 줄을 제공합니다.

Django CMS와 잘 통합되는 사람은 누구일까요? 관리자에게 정장 스킨과 함께 사용했지만 아무런 문제가 없었습니다.

희망이 있습니다.