2013-09-24 2 views
5

heroku에 배포 될 앱에서 ...왜 데이터베이스에 파일을 저장하지 않습니까?

사용자가 미리보기 이미지를 업로드 할 수 있도록 허용해야합니다.

heroku 배포 된 앱에는 물론 영구 로컬 파일 저장소가 없습니다.

여기서는 일반적으로 할 일은 Amazon S3 또는 다른 AWS 호스팅 클라우드 스토리지에 파일을 저장하는 것입니다.

하지만 이미지를 포스트그레스 블롭 열에 붙이면 어떻게 될까요?

이 작업의 단점은 무엇입니까? 단점은 다른 저장 공간에 대해 비용을 지불 할 필요가 없으므로 추가 외부 시스템을 다루어 버그와 중단에 대한 더 많은 기회를 얻을 필요가 없다는 것입니다. 그러나 아무도이 일을하지 않는 것 같은 좋은 이유가 있어야합니다. 그 사람들은 무엇입니까?

답변

4

데이터베이스와 S3는 두 가지 다른 저장 메커니즘입니다. 그들은 어떻게 다른가요? S3

아마존 S3에 대해

는 고도로 전문화 된 파일 저장 시스템입니다. 기본 파일 읽기/쓰기/삭제 작업을 최소화하고 저장된 전체 파일의 데이터 처리를위한 캐싱을 최적화합니다. 포스트 그레스

포스트 그레스 소개

는 다양한 작업에 대한 데이터를 저장 및 인덱싱에 대한 엄청난 유연성과 SQL 관계형 데이터베이스입니다. 바이너리 이미지 데이터를 Postgres의 한 행에 넣을 수 있습니다.

비교 비용/확장 성

가 왜 포스트 그레스를 통해 S3를 선택할 것 ? 비용 및 확장 성. Postgres는 값 비싸고 고도로 숙련 된 일반 제너레이터입니다. Heroku에서 Postgres 데이터베이스를 실행하면 데이터 양과 트래픽 규모에 따라 월간 수백 또는 수천 달러의 비용이 발생할 수 있습니다.

Amazon S3는 고객의 요구 사항에 완벽하게 부합하는 저렴하고 확장 성이 뛰어난 솔루션입니다 (이미지 작성, 웹 페이지 컨텍스트에서의 이미지 제공).

TL : DR : Amazon S3는 이미지와 같이 확장 성이 뛰어나고 상대적으로 저렴한 파일에 최적화되어 있습니다.

+0

공개되지 않아야하는 민감한 데이터에 대한 의견이 있으십니까? – abimelex

관련 문제