2012-12-17 3 views
4

전적으로 파일 업로드를 중심으로 간단한 웹 API를 작성하고 있습니다. 사용자는 HTTP 기반 API를 통해 서비스에 파일을 업로드 할 수 있으며 서비스는 사용자가 액세스 할 수있는 파일을 생성하며 업로드 된 파일과 함께 저장해야합니다. 따라서 많은 파일이 재생됩니다.첨부 파일을 CouchDB 또는 S3에 저장해야합니까?

기본적으로, CouchDB를 이러한를 저장하고 아마존의 S3 같은 이러한 저장 사이에서 결정하는 것을 시도하고있다. CouchDB를 가진

, 나는 아마 _attachments 컬렉션에서 첨부 파일 데이터를 인라인으로, 사용자가 초기 업로드 된 파일에 대한 하나의 문서를 것입니다. 시스템이 작성한 추가 파일이 해당. 서에 추가됩니다. (이 서비스는 문서 변환을 수행하므로 Excel XLS를 업로드하고 시스템에서 PDF, TXT 등을 생성합니다.) 업로드 된 문서 레코드의 삭제로 인해 생성 된 PDF, TXT 또는 다른 첨부 파일.

는 S3와 함께, 나는 보안 그것이 내가 개별 파일 저장에 완전히 전용 호스팅 솔루션을 사용하고 있음을 알고 생각합니다. 또한 이러한 대역폭에 독점적으로 대역폭을 할당하고 내 API 웹 서버에서 전송하지 않습니다. 단점은 API 코드에 많은 로직을 추가한다는 것입니다. 이제는 로컬 CouchDB 데이터베이스가 알고있는 것과 많은 원격 파일을 동기화해야합니다. 또한 최종 사용자가 S3에서 직접 파일에 액세스하기를 원하면 요청 서명 및 처리를해야합니다. 문서는 모두 개별적으로 저장되므로 CouchDB에서 사용자가 업로드 한 첨부 파일을 삭제하면 다른 파일에 대해서도 S3에 대해 여러 번 삭제 쿼리를해야합니다.

나는 S3 잘 알고 있어요, 그리고 현재 프로젝트에서 그것을 사용하지만 CouchDB를은 첨부 파일을 허용하는 방법에 정말 멋진 보인다. 나는 그것을 사용하고 싶지만, 어떤 어려움이나 단점이 있습니까? 위에서 설명한 시나리오에서 CouchDB 첨부 파일이 S3보다 더 적합합니까? 많은 업로드 파일이 저장되어 있습니까?

감사

나는 많은 프로젝트와 여러 비슷한 프로젝트를 성공적으로 CouchDB를 사용했습니다
+0

나는 S3와 함께 갈 큰 이유가 객체 내구성이라고 생각한다. 11 가지 9 가지 내구성과 무한한 확장 성을 갖춘 CouchDB 배치에 들어가려면 얼마나 많은 엔지니어링 및 관리가 필요할까요? – jamieb

답변

0

. couchdb를 사용하면 상자의 상자에서 많은 것을 얻을 수 있습니다. 내가 가지고있는 질문은 파일의 평균 크기이며, DB가 얼마나 클 것이라고 생각하십니까?

0

두 솔루션은 매우 합리적이다 : 장점과 단점이있다. 당신이 CouchDB를 첨부 파일로 파일을 저장하기 위해 언급하지 않았다

하나의 장점은이 데이터를 복제 할 것입니다. 연속 백업을 쉽게하고 스냅 샷에서 데이터가 파일과 일관성있게 정리됩니다.

관련 문제